irc: add support of UTF8MAPPING, add support of optional server in info "irc_is_nick" (closes #1528)
This commit is contained in:
parent
bf964de939
commit
12051a506d
@ -39,6 +39,7 @@ New features::
|
||||
* buflist: add default key kbd:[Alt+Shift+B] to toggle buflist
|
||||
* buflist: add options enable/disable/toggle in command /buflist
|
||||
* buflist: evaluate option buflist.look.sort so that sort can be customized for each of the three buflist bar items (issue #1465)
|
||||
* irc: add support of UTF8MAPPING (issue #1528)
|
||||
* irc: display account messages in buffers (issue #1250)
|
||||
* relay: increase default limits for IRC backlog options
|
||||
* relay: add command "handshake" in weechat relay protocol and nonce to prevent replay attacks, add options relay.network.password_hash_algo, relay.network.password_hash_iterations, relay.network.nonce_size (issue #1474)
|
||||
@ -64,6 +65,7 @@ Bug fixes::
|
||||
* exec: fix use of same task id for different tasks (issue #1491)
|
||||
* fifo: fix errors when writing in the FIFO pipe (issue #713)
|
||||
* guile: enable again /guile eval (issue #1514)
|
||||
* irc: add support of optional server in info "irc_is_nick", fix check of nick using UTF8MAPPING isupport value (issue #1528)
|
||||
* irc: fix add of ignore with flags in regex, display full ignore mask in list of ignores (issue #1518)
|
||||
* irc: do not remove spaces at the end of users messages received (issue #1513)
|
||||
* irc: fix realname delimiter color in WHO/WHOX response (issue #1497)
|
||||
|
@ -258,6 +258,7 @@ _nick_max_length_ (integer) +
|
||||
_user_max_length_ (integer) +
|
||||
_host_max_length_ (integer) +
|
||||
_casemapping_ (integer) +
|
||||
_utf8mapping_ (integer) +
|
||||
_chantypes_ (string) +
|
||||
_chanmodes_ (string) +
|
||||
_monitor_ (integer) +
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
| irc | irc_is_channel | 1, falls die Zeichenkette ein gültiger IRC-Channelname für den Server ist | Server,Channel (Server ist optional)
|
||||
|
||||
| irc | irc_is_nick | 1, falls die Zeichenkette ein gültiger IRC Nickname ist | Nickname
|
||||
| irc | irc_is_nick | 1, falls die Zeichenkette ein gültiger IRC Nickname ist | server,nickname (server is optional)
|
||||
|
||||
| irc | irc_nick | aktuellen Nicknamen für den Server erhalten | Servername
|
||||
|
||||
|
@ -258,6 +258,7 @@ _nick_max_length_ (integer) +
|
||||
_user_max_length_ (integer) +
|
||||
_host_max_length_ (integer) +
|
||||
_casemapping_ (integer) +
|
||||
_utf8mapping_ (integer) +
|
||||
_chantypes_ (string) +
|
||||
_chanmodes_ (string) +
|
||||
_monitor_ (integer) +
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
| irc | irc_is_channel | 1 if string is a valid IRC channel name for server | server,channel (server is optional)
|
||||
|
||||
| irc | irc_is_nick | 1 if string is a valid IRC nick name | nickname
|
||||
| irc | irc_is_nick | 1 if string is a valid IRC nick name | server,nickname (server is optional)
|
||||
|
||||
| irc | irc_nick | get current nick on a server | server name
|
||||
|
||||
|
@ -258,6 +258,7 @@ _nick_max_length_ (integer) +
|
||||
_user_max_length_ (integer) +
|
||||
_host_max_length_ (integer) +
|
||||
_casemapping_ (integer) +
|
||||
_utf8mapping_ (integer) +
|
||||
_chantypes_ (string) +
|
||||
_chanmodes_ (string) +
|
||||
_monitor_ (integer) +
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
| irc | irc_is_channel | 1 si la chaîne est un nom de canal IRC valide pour le serveur | serveur,canal (le serveur est optionnel)
|
||||
|
||||
| irc | irc_is_nick | 1 si la chaîne est un pseudo IRC valide | pseudo
|
||||
| irc | irc_is_nick | 1 si la chaîne est un pseudo IRC valide | serveur,pseudo (le serveur est optionnel)
|
||||
|
||||
| irc | irc_nick | retourne le pseudo utilisé actuellement sur un serveur | nom de serveur
|
||||
|
||||
|
@ -258,6 +258,7 @@ _nick_max_length_ (integer) +
|
||||
_user_max_length_ (integer) +
|
||||
_host_max_length_ (integer) +
|
||||
_casemapping_ (integer) +
|
||||
_utf8mapping_ (integer) +
|
||||
_chantypes_ (string) +
|
||||
_chanmodes_ (string) +
|
||||
_monitor_ (integer) +
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
| irc | irc_is_channel | 1 se la stringa è il nome di un canale IRC valido per il server | server,canale (server è opzionale)
|
||||
|
||||
| irc | irc_is_nick | 1 se la stringa è un nick IRC valido | nick
|
||||
| irc | irc_is_nick | 1 se la stringa è un nick IRC valido | server,nickname (server is optional)
|
||||
|
||||
| irc | irc_nick | ottiene nick corrente su un server | nome server
|
||||
|
||||
|
@ -258,6 +258,7 @@ _nick_max_length_ (integer) +
|
||||
_user_max_length_ (integer) +
|
||||
_host_max_length_ (integer) +
|
||||
_casemapping_ (integer) +
|
||||
_utf8mapping_ (integer) +
|
||||
_chantypes_ (string) +
|
||||
_chanmodes_ (string) +
|
||||
_monitor_ (integer) +
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
| irc | irc_is_channel | 文字列がサーバの有効な IRC チャンネル名なら 1 | サーバ、チャンネル (サーバは任意)
|
||||
|
||||
| irc | irc_is_nick | 文字列が有効な IRC ニックネームなら 1 | ニックネーム
|
||||
| irc | irc_is_nick | 文字列が有効な IRC ニックネームなら 1 | server,nickname (server is optional)
|
||||
|
||||
| irc | irc_nick | あるサーバの現在のニックネームを取得 | サーバ名
|
||||
|
||||
|
@ -258,6 +258,7 @@ _nick_max_length_ (integer) +
|
||||
_user_max_length_ (integer) +
|
||||
_host_max_length_ (integer) +
|
||||
_casemapping_ (integer) +
|
||||
_utf8mapping_ (integer) +
|
||||
_chantypes_ (string) +
|
||||
_chanmodes_ (string) +
|
||||
_monitor_ (integer) +
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
| irc | irc_is_channel | 1 jeśli ciąg jest poprawną nazwą kanału IRC dla serwera | serwer,kanał (serWer jest opcjonalny)
|
||||
|
||||
| irc | irc_is_nick | 1 jeśli ciąg jest poprawną nazwą użytkownika IRC | nazwa użytkownika
|
||||
| irc | irc_is_nick | 1 jeśli ciąg jest poprawną nazwą użytkownika IRC | server,nickname (server is optional)
|
||||
|
||||
| irc | irc_nick | pobiera aktualny nick z serwera | nazwa serwera
|
||||
|
||||
|
18
po/cs.po
18
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-04-28 16:40+0200\n"
|
||||
"Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -6133,10 +6133,6 @@ msgstr "%s: skript \"%s\" odebrán"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s%s: skript \"%s\" nenačten"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sBarva \"%s\" není definovávána v paletě"
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "server"
|
||||
@ -8836,8 +8832,9 @@ msgstr "server,kanál (kanál je volitelný)"
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "1 pokud je řetězec validní jméno IRC přezdívky"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "přezdívka"
|
||||
#, fuzzy
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "server,kanál (kanál je volitelný)"
|
||||
|
||||
msgid "get current nick on a server"
|
||||
msgstr "získat aktuální přezdívku na serveru"
|
||||
@ -8856,6 +8853,9 @@ msgid ""
|
||||
"\")"
|
||||
msgstr ""
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "přezdívka"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -9808,6 +9808,10 @@ msgstr "%s%s: nemůžu načíst soubor \"%s\""
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "%s%s: nemůžu spustit soubor \"%s\""
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sBarva \"%s\" není definovávána v paletě"
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr "%s===\t%s========== konec backlogu (%d řádků) =========="
|
||||
|
18
po/de.po
18
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-06-16 18:32+0200\n"
|
||||
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
|
||||
"Language-Team: German <kde-i18n-de@kde.org>\n"
|
||||
@ -7614,10 +7614,6 @@ msgstr "%s: Skript \"%s\" wurde beendet"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s%s: Das Skript \"%s\" wurde nicht installiert"
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sBefehl \"/%s eval\" ist zur Zeit noch nicht implementiert"
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "Server"
|
||||
@ -10674,8 +10670,9 @@ msgstr "Server,Channel (Server ist optional)"
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "1, falls die Zeichenkette ein gültiger IRC Nickname ist"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "Nickname"
|
||||
#, fuzzy
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "Server,Channel (Server ist optional)"
|
||||
|
||||
msgid "get current nick on a server"
|
||||
msgstr "aktuellen Nicknamen für den Server erhalten"
|
||||
@ -10696,6 +10693,9 @@ msgstr ""
|
||||
"erhalte nick color code (*veraltet* ab Version 1.5, wird ersetzt durch "
|
||||
"\"nick_color\")"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "Nickname"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -11681,6 +11681,10 @@ msgstr "%s%s: Kann die Datei \"%s\" nicht laden"
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "%s%s: Die Datei \"%s\" kann nicht ausgeführt werden"
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sBefehl \"/%s eval\" ist zur Zeit noch nicht implementiert"
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr "%s===\t%s========== Ende des Verlaufspeichers (%d Zeilen) =========="
|
||||
|
18
po/es.po
18
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-04-28 16:40+0200\n"
|
||||
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -6347,10 +6347,6 @@ msgstr "%s: script \"%s\" descargado"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s%s: el script \"%s\" no está cargado"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sColor \"%s\" no está definido en la paleta"
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "servidor"
|
||||
@ -9134,8 +9130,9 @@ msgstr "servidor,canal (servidor es opcional)"
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "1 si la cadena es un apodo IRC válido"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "apodo"
|
||||
#, fuzzy
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "servidor,canal (servidor es opcional)"
|
||||
|
||||
msgid "get current nick on a server"
|
||||
msgstr "devuelve el apodo actual en el servidor"
|
||||
@ -9154,6 +9151,9 @@ msgid ""
|
||||
"\")"
|
||||
msgstr ""
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "apodo"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -10118,6 +10118,10 @@ msgstr "%s%s: no es posible cargar el archivo \"%s\""
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "%s%s: no es posible ejecutar el archivo \"%s\""
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sColor \"%s\" no está definido en la paleta"
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr "%s===\t%s========== Fin del último registro (%d líneas) =========="
|
||||
|
19
po/fr.po
19
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: 2020-06-03 07:54+0200\n"
|
||||
"PO-Revision-Date: 2020-06-03 07:55+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-06-20 17:05+0200\n"
|
||||
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
"Language: fr\n"
|
||||
@ -7454,10 +7454,6 @@ msgstr "%s : script \"%s\" déchargé"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s%s : script \"%s\" non chargé"
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sLa commande \"/%s eval\" n'est pas implémentée"
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "serveur"
|
||||
@ -10425,8 +10421,8 @@ msgstr "serveur,canal (le serveur est optionnel)"
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "1 si la chaîne est un pseudo IRC valide"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "pseudo"
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "serveur,pseudo (le serveur est optionnel)"
|
||||
|
||||
msgid "get current nick on a server"
|
||||
msgstr "retourne le pseudo utilisé actuellement sur un serveur"
|
||||
@ -10447,6 +10443,9 @@ msgstr ""
|
||||
"retourne le code couleur du pseudo (*obsolète* depuis la version 1.5, "
|
||||
"remplacé par \"nick_color\")"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "pseudo"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -11411,6 +11410,10 @@ msgstr "%s%s : impossible de charger le fichier \"%s\""
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "%s%s : impossible d'exécuter le fichier \"%s\""
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sLa commande \"/%s eval\" n'est pas implémentée"
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr "%s===\t%s========== Fin de l'historique (%d lignes) =========="
|
||||
|
18
po/hu.po
18
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-04-28 16:40+0200\n"
|
||||
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -5665,10 +5665,6 @@ msgstr "A \"%s\" modul eltávolítva.\n"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s a \"%s\" szerver nem található\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
@ -8224,8 +8220,8 @@ msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "felhasználók listája a szobában"
|
||||
|
||||
#, fuzzy
|
||||
msgid "nickname"
|
||||
msgstr "[-all] név"
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "szoba: szoba neve"
|
||||
|
||||
#, fuzzy
|
||||
msgid "get current nick on a server"
|
||||
@ -8247,6 +8243,10 @@ msgid ""
|
||||
"\")"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "nickname"
|
||||
msgstr "[-all] név"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -9189,6 +9189,10 @@ msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr ""
|
||||
|
18
po/it.po
18
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-04-28 16:40+0200\n"
|
||||
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -6515,10 +6515,6 @@ msgstr "%s: script \"%s\" scaricato"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s%s: script \"%s\" non caricato"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sColore \"%s\" non definito nella tavolozza"
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "server"
|
||||
@ -9329,8 +9325,9 @@ msgstr "server,canale (server è opzionale)"
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "1 se la stringa è un nick IRC valido"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "nick"
|
||||
#, fuzzy
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "server,canale (server è opzionale)"
|
||||
|
||||
msgid "get current nick on a server"
|
||||
msgstr "ottiene nick corrente su un server"
|
||||
@ -9349,6 +9346,9 @@ msgid ""
|
||||
"\")"
|
||||
msgstr ""
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "nick"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -10303,6 +10303,10 @@ msgstr "%s%s: impossibile caricare il file \"%s\""
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "%s%s: impossibile eseguire il file \"%s\""
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sColore \"%s\" non definito nella tavolozza"
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr "%s===\t%s========== Fine della cronologia (%d righe) =========="
|
||||
|
18
po/ja.po
18
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-04-28 16:40+0200\n"
|
||||
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
|
||||
"Language-Team: Japanese <https://github.com/l/weechat/tree/master/"
|
||||
@ -7107,10 +7107,6 @@ msgstr "%s: スクリプト \"%s\" がアンロードされました"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s%s: スクリプト \"%s\" はロードされていません"
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sコマンド \"/%s eval\" はまだ実装されていません"
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "サーバ"
|
||||
@ -9958,8 +9954,9 @@ msgstr "サーバ、チャンネル (サーバは任意)"
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "文字列が有効な IRC ニックネームなら 1"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "ニックネーム"
|
||||
#, fuzzy
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "サーバ、チャンネル (サーバは任意)"
|
||||
|
||||
msgid "get current nick on a server"
|
||||
msgstr "あるサーバの現在のニックネームを取得"
|
||||
@ -9980,6 +9977,9 @@ msgstr ""
|
||||
"ニックネームの色コードを取得 (バージョン 1.5 で *廃止* されました。代わりに "
|
||||
"\"nick_color\" を使ってください)"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "ニックネーム"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -10943,6 +10943,10 @@ msgstr "%s%s: ファイル \"%s\" をロードできません"
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "%s%s: ファイル \"%s\" を実行できません"
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sコマンド \"/%s eval\" はまだ実装されていません"
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr "%s===\t%s========== バックログの最後 (%d 行) =========="
|
||||
|
18
po/pl.po
18
po/pl.po
@ -22,7 +22,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-04-28 16:40+0200\n"
|
||||
"Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n"
|
||||
"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
|
||||
@ -7248,10 +7248,6 @@ msgstr "%s: skrypt \"%s\" wyładowano"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s%s: skrypt \"%s\" nie załadowany"
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sKomenda \"/%s eval\" nie jest jeszcze zaimplementowana"
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "serwer"
|
||||
@ -10169,8 +10165,9 @@ msgstr "serwer,kanał (serWer jest opcjonalny)"
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "1 jeśli ciąg jest poprawną nazwą użytkownika IRC"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "nazwa użytkownika"
|
||||
#, fuzzy
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "serwer,kanał (serWer jest opcjonalny)"
|
||||
|
||||
msgid "get current nick on a server"
|
||||
msgstr "pobiera aktualny nick z serwera"
|
||||
@ -10191,6 +10188,9 @@ msgstr ""
|
||||
"pobierz kod koloru nicka (*przestarzałe* od wersji 1.5, zamienione przez "
|
||||
"\"nick_color\")"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "nazwa użytkownika"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -11144,6 +11144,10 @@ msgstr "%s%s: nie można wczytać pliku \"%s\""
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "%s%s: nie można wykonać pliku \"%s\""
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sKomenda \"/%s eval\" nie jest jeszcze zaimplementowana"
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr "%s===\t%s========== Koniec backloga (%d linii) =========="
|
||||
|
18
po/pt.po
18
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-04-28 16:40+0200\n"
|
||||
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
|
||||
"Language-Team: Portuguese <>\n"
|
||||
@ -6887,10 +6887,6 @@ msgstr "%s: script \"%s\" descarregado"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s%s: script \"%s\" não carregado"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sA cor \"%s\" não está definida na paleta"
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "servidor"
|
||||
@ -9779,8 +9775,9 @@ msgstr "servidor,canal (o servidor é opcional)"
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "1 se a cadeia for um nick de IRC válido"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "nickname"
|
||||
#, fuzzy
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "servidor,canal (o servidor é opcional)"
|
||||
|
||||
msgid "get current nick on a server"
|
||||
msgstr "obter nick atual num servidor"
|
||||
@ -9801,6 +9798,9 @@ msgstr ""
|
||||
"obter código de cor do nick (*obsoleto* desde a versão 1.5, substituído por "
|
||||
"\"nick_color\")"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "nickname"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -10771,6 +10771,10 @@ msgstr "%s%s: não foi possível carregar o ficheiro \"%s\""
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "%s%s: não foi possível executar o ficheiro \"%s\""
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sA cor \"%s\" não está definida na paleta"
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr "%s===\t%s====== Fim do registo recente (%d linhas) ====="
|
||||
|
18
po/pt_BR.po
18
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-04-18 11:34+0200\n"
|
||||
"Last-Translator: Eduardo Elias <camponez@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -6312,10 +6312,6 @@ msgstr "%s: script \"%s\" descarregado"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s%s: script \"%s\" não carregado"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sCor \"%s\" não está definida na palheta"
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "servidor"
|
||||
@ -8658,8 +8654,9 @@ msgstr "servidor,canal (servidor é opcional)"
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "1 se string é um apelido IRC válido"
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "apelido"
|
||||
#, fuzzy
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "servidor,canal (servidor é opcional)"
|
||||
|
||||
msgid "get current nick on a server"
|
||||
msgstr "obter apelido atual em um servidor"
|
||||
@ -8678,6 +8675,9 @@ msgid ""
|
||||
"\")"
|
||||
msgstr ""
|
||||
|
||||
msgid "nickname"
|
||||
msgstr "apelido"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -9632,6 +9632,10 @@ msgstr "%s%s: não foi possível carregar arquivo \"%s\""
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "%s%s: não foi possível executar arquivo \"%s\""
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sCor \"%s\" não está definida na palheta"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr "===\t========== Fim do backlog (%d linhas) =========="
|
||||
|
18
po/ru.po
18
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2020-04-28 16:40+0200\n"
|
||||
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -5702,10 +5702,6 @@ msgstr "Plugin \"%s\" выгружен.\n"
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr "%s сервер \"%s\" не найден\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sЦвет \"%s\" не определён в палитре"
|
||||
|
||||
#, fuzzy
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
@ -8260,8 +8256,8 @@ msgid "1 if string is a valid IRC nick name"
|
||||
msgstr "список ников на канале"
|
||||
|
||||
#, fuzzy
|
||||
msgid "nickname"
|
||||
msgstr "[-all] ник"
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr "канал: название канала"
|
||||
|
||||
#, fuzzy
|
||||
msgid "get current nick on a server"
|
||||
@ -8283,6 +8279,10 @@ msgid ""
|
||||
"\")"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "nickname"
|
||||
msgstr "[-all] ник"
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -9226,6 +9226,10 @@ msgstr "Не могу записать лог-файл \"%s\"\n"
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr "Не могу записать лог-файл \"%s\"\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr "%sЦвет \"%s\" не определён в палитре"
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr ""
|
||||
|
15
po/tr.po
15
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: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+0200\n"
|
||||
"PO-Revision-Date: 2019-11-03 08:38+0100\n"
|
||||
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -5232,10 +5232,6 @@ msgstr ""
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "sunucu(lar)"
|
||||
@ -7470,7 +7466,7 @@ msgstr ""
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr ""
|
||||
|
||||
msgid "nickname"
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr ""
|
||||
|
||||
msgid "get current nick on a server"
|
||||
@ -7490,6 +7486,9 @@ msgid ""
|
||||
"\")"
|
||||
msgstr ""
|
||||
|
||||
msgid "nickname"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -8394,6 +8393,10 @@ msgstr ""
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr ""
|
||||
|
@ -21,7 +21,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2020-06-03 07:54+0200\n"
|
||||
"POT-Creation-Date: 2020-06-20 17:04+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"
|
||||
@ -5172,10 +5172,6 @@ msgstr ""
|
||||
msgid "%s%s: script \"%s\" not loaded"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
msgid "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] ""
|
||||
@ -7330,7 +7326,7 @@ msgstr ""
|
||||
msgid "1 if string is a valid IRC nick name"
|
||||
msgstr ""
|
||||
|
||||
msgid "nickname"
|
||||
msgid "server,nickname (server is optional)"
|
||||
msgstr ""
|
||||
|
||||
msgid "get current nick on a server"
|
||||
@ -7350,6 +7346,9 @@ msgid ""
|
||||
"\")"
|
||||
msgstr ""
|
||||
|
||||
msgid "nickname"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"get nick color name (*deprecated* since version 1.5, replaced by "
|
||||
"\"nick_color_name\")"
|
||||
@ -8256,6 +8255,10 @@ msgstr ""
|
||||
msgid "%s%s: unable to execute file \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%sCommand \"/%s eval\" is not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%s===\t%s========== End of backlog (%d lines) =========="
|
||||
msgstr ""
|
||||
|
@ -108,6 +108,10 @@ irc_info_info_irc_is_nick_cb (const void *pointer, void *data,
|
||||
const char *info_name,
|
||||
const char *arguments)
|
||||
{
|
||||
char *pos_comma, *server;
|
||||
const char *pos_nick;
|
||||
struct t_irc_server *ptr_server;
|
||||
|
||||
/* make C compiler happy */
|
||||
(void) pointer;
|
||||
(void) data;
|
||||
@ -116,7 +120,21 @@ irc_info_info_irc_is_nick_cb (const void *pointer, void *data,
|
||||
if (!arguments || !arguments[0])
|
||||
return NULL;
|
||||
|
||||
return (irc_nick_is_nick (arguments)) ? strdup ("1") : NULL;
|
||||
ptr_server = NULL;
|
||||
pos_nick = arguments;
|
||||
pos_comma = strchr (arguments, ',');
|
||||
if (pos_comma)
|
||||
{
|
||||
pos_nick = pos_comma + 1;
|
||||
server = weechat_strndup (arguments, pos_comma - arguments);
|
||||
if (server)
|
||||
{
|
||||
ptr_server = irc_server_search (server);
|
||||
free (server);
|
||||
}
|
||||
}
|
||||
|
||||
return (irc_nick_is_nick (ptr_server, pos_nick)) ? strdup ("1") : NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1072,7 +1090,7 @@ irc_info_init ()
|
||||
weechat_hook_info (
|
||||
"irc_is_nick",
|
||||
N_("1 if string is a valid IRC nick name"),
|
||||
N_("nickname"),
|
||||
N_("server,nickname (server is optional)"),
|
||||
&irc_info_info_irc_is_nick_cb, NULL, NULL);
|
||||
weechat_hook_info (
|
||||
"irc_nick",
|
||||
|
@ -62,31 +62,63 @@ irc_nick_valid (struct t_irc_channel *channel, struct t_irc_nick *nick)
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks if string is a valid nick string (RFC 1459).
|
||||
* Checks if string is a valid nick string, using server UTF8MAPPING.
|
||||
*
|
||||
* Returns:
|
||||
* 1: string is a valid nick
|
||||
* 0: string is not a valid nick
|
||||
* 1: string is a valid nick on this server
|
||||
* 0: string is not a valid nick on this server
|
||||
*/
|
||||
|
||||
int
|
||||
irc_nick_is_nick (const char *string)
|
||||
irc_nick_is_nick (struct t_irc_server *server, const char *string)
|
||||
{
|
||||
const char *ptr;
|
||||
const char *ptr_string;
|
||||
int utf8mapping;
|
||||
|
||||
if (!string || !string[0])
|
||||
return 0;
|
||||
|
||||
/* first char must not be a number or hyphen */
|
||||
ptr = string;
|
||||
if (strchr ("0123456789-", *ptr))
|
||||
return 0;
|
||||
utf8mapping = (server) ? server->utf8mapping : IRC_SERVER_UTF8MAPPING_NONE;
|
||||
|
||||
while (ptr && ptr[0])
|
||||
/* check length of nick in bytes (if we have a limit in the server) */
|
||||
if (server && (server->nick_max_length > 0)
|
||||
&& (int)strlen (string) > server->nick_max_length)
|
||||
{
|
||||
if (!strchr (IRC_NICK_VALID_CHARS, *ptr))
|
||||
/* nick is too long */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* check if nick is UTF-8 valid */
|
||||
if ((utf8mapping == IRC_SERVER_UTF8MAPPING_RFC8265)
|
||||
&& !weechat_utf8_is_valid (string, -1, NULL))
|
||||
{
|
||||
/* invalid UTF-8 */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* check the first char in the nick */
|
||||
if ((utf8mapping == IRC_SERVER_UTF8MAPPING_NONE)
|
||||
&& strchr ("0123456789-", string[0]))
|
||||
{
|
||||
/* first char is invalid */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* check if there are forbidden chars in nick */
|
||||
ptr_string = string;
|
||||
while (ptr_string && ptr_string[0])
|
||||
{
|
||||
if ((utf8mapping == IRC_SERVER_UTF8MAPPING_NONE)
|
||||
&& !strchr (IRC_NICK_VALID_CHARS, ptr_string[0]))
|
||||
{
|
||||
return 0;
|
||||
ptr++;
|
||||
}
|
||||
if ((utf8mapping == IRC_SERVER_UTF8MAPPING_RFC8265)
|
||||
&& strchr (IRC_NICK_INVALID_CHARS, ptr_string[0]))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
ptr_string = weechat_utf8_next_char (ptr_string);
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
#define IRC_NICK_VALID_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHI" \
|
||||
"JKLMNOPQRSTUVWXYZ0123456789-[]\\`_^{|}"
|
||||
#define IRC_NICK_INVALID_CHARS " ,:\n\r*?.!@"
|
||||
|
||||
/* nicklist group for nicks without prefix is "999|..." */
|
||||
#define IRC_NICK_GROUP_OTHER_NUMBER 999
|
||||
@ -47,7 +48,7 @@ struct t_irc_nick
|
||||
|
||||
extern int irc_nick_valid (struct t_irc_channel *channel,
|
||||
struct t_irc_nick *nick);
|
||||
extern int irc_nick_is_nick (const char *string);
|
||||
extern int irc_nick_is_nick (struct t_irc_server *server, const char *string);
|
||||
extern char *irc_nick_find_color (const char *nickname);
|
||||
extern char *irc_nick_find_color_name (const char *nickname);
|
||||
extern void irc_nick_set_host (struct t_irc_nick *nick, const char *host);
|
||||
|
@ -3096,7 +3096,7 @@ IRC_PROTOCOL_CALLBACK(001)
|
||||
IRC_PROTOCOL_CALLBACK(005)
|
||||
{
|
||||
char *pos, *pos2, *pos_start, *error, *isupport2;
|
||||
int length_isupport, length, casemapping;
|
||||
int length_isupport, length, casemapping, utf8mapping;
|
||||
long value;
|
||||
|
||||
IRC_PROTOCOL_MIN_ARGS(4);
|
||||
@ -3181,6 +3181,21 @@ IRC_PROTOCOL_CALLBACK(005)
|
||||
pos2[0] = ' ';
|
||||
}
|
||||
|
||||
/* save utf8mapping */
|
||||
pos = strstr (argv_eol[3], "UTF8MAPPING=");
|
||||
if (pos)
|
||||
{
|
||||
pos += 12;
|
||||
pos2 = strchr (pos, ' ');
|
||||
if (pos2)
|
||||
pos2[0] = '\0';
|
||||
utf8mapping = irc_server_search_utf8mapping (pos);
|
||||
if (utf8mapping >= 0)
|
||||
server->utf8mapping = utf8mapping;
|
||||
if (pos2)
|
||||
pos2[0] = ' ';
|
||||
}
|
||||
|
||||
/* save chantypes */
|
||||
pos = strstr (argv_eol[3], "CHANTYPES=");
|
||||
if (pos)
|
||||
|
@ -124,6 +124,9 @@ char *irc_server_options[IRC_SERVER_NUM_OPTIONS][2] =
|
||||
char *irc_server_casemapping_string[IRC_SERVER_NUM_CASEMAPPING] =
|
||||
{ "rfc1459", "strict-rfc1459", "ascii" };
|
||||
|
||||
char *irc_server_utf8mapping_string[IRC_SERVER_NUM_UTF8MAPPING] =
|
||||
{ "none", "rfc8265" };
|
||||
|
||||
char *irc_server_prefix_modes_default = "ov";
|
||||
char *irc_server_prefix_chars_default = "@+";
|
||||
char *irc_server_chanmodes_default = "beI,k,l";
|
||||
@ -248,8 +251,8 @@ irc_server_search_option (const char *option_name)
|
||||
/*
|
||||
* Searches for a casemapping.
|
||||
*
|
||||
* Returns index of casemapping in array "irc_server_casemapping_string", -1 if
|
||||
* not found.
|
||||
* Returns index of casemapping in array "irc_server_casemapping_string",
|
||||
* -1 if not found.
|
||||
*/
|
||||
|
||||
int
|
||||
@ -267,6 +270,28 @@ irc_server_search_casemapping (const char *casemapping)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Searches for a utf8mapping.
|
||||
*
|
||||
* Returns index of utf8mapping in array "irc_server_utf8mapping_string",
|
||||
* -1 if not found.
|
||||
*/
|
||||
|
||||
int
|
||||
irc_server_search_utf8mapping (const char *utf8mapping)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < IRC_SERVER_NUM_UTF8MAPPING; i++)
|
||||
{
|
||||
if (weechat_strcasecmp (irc_server_utf8mapping_string[i], utf8mapping) == 0)
|
||||
return i;
|
||||
}
|
||||
|
||||
/* utf8mapping not found */
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Compares two strings on server (case insensitive, depends on casemapping).
|
||||
*
|
||||
@ -302,8 +327,8 @@ irc_server_strcasecmp (struct t_irc_server *server,
|
||||
}
|
||||
|
||||
/*
|
||||
* Compares two strings on server (case insensitive, depends on casemapping) for
|
||||
* max chars.
|
||||
* Compares two strings on server (case insensitive, depends on casemapping)
|
||||
* for max chars.
|
||||
*
|
||||
* Returns:
|
||||
* < 0: string1 < string2
|
||||
@ -1415,6 +1440,7 @@ irc_server_alloc (const char *name)
|
||||
new_server->user_max_length = 0;
|
||||
new_server->host_max_length = 0;
|
||||
new_server->casemapping = IRC_SERVER_CASEMAPPING_RFC1459;
|
||||
new_server->utf8mapping = IRC_SERVER_UTF8MAPPING_NONE;
|
||||
new_server->chantypes = NULL;
|
||||
new_server->chanmodes = NULL;
|
||||
new_server->monitor = 0;
|
||||
@ -5743,6 +5769,7 @@ irc_server_hdata_server_cb (const void *pointer, void *data,
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, user_max_length, INTEGER, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, host_max_length, INTEGER, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, casemapping, INTEGER, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, utf8mapping, INTEGER, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, chantypes, STRING, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, chanmodes, STRING, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, monitor, INTEGER, 0, NULL, NULL);
|
||||
@ -5990,6 +6017,10 @@ irc_server_add_to_infolist (struct t_infolist *infolist,
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_string (ptr_item, "casemapping_string", irc_server_casemapping_string[server->casemapping]))
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_integer (ptr_item, "utf8mapping", server->utf8mapping))
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_string (ptr_item, "utf8mapping_string", irc_server_utf8mapping_string[server->utf8mapping]))
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_string (ptr_item, "chantypes", server->chantypes))
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_string (ptr_item, "chanmodes", server->chanmodes))
|
||||
@ -6378,6 +6409,9 @@ irc_server_print_log ()
|
||||
weechat_log_printf (" casemapping. . . . . : %d (%s)",
|
||||
ptr_server->casemapping,
|
||||
irc_server_casemapping_string[ptr_server->casemapping]);
|
||||
weechat_log_printf (" utf8mapping. . . . . : %d (%s)",
|
||||
ptr_server->utf8mapping,
|
||||
irc_server_utf8mapping_string[ptr_server->utf8mapping]);
|
||||
weechat_log_printf (" chantypes. . . . . . : '%s'", ptr_server->chantypes);
|
||||
weechat_log_printf (" chanmodes. . . . . . : '%s'", ptr_server->chanmodes);
|
||||
weechat_log_printf (" monitor. . . . . . . : %d", ptr_server->monitor);
|
||||
|
@ -142,6 +142,15 @@ enum t_irc_server_casemapping
|
||||
IRC_SERVER_NUM_CASEMAPPING,
|
||||
};
|
||||
|
||||
/* utf8mapping (string comparisons for nicks/channels) */
|
||||
enum t_irc_server_utf8mapping
|
||||
{
|
||||
IRC_SERVER_UTF8MAPPING_NONE = 0,
|
||||
IRC_SERVER_UTF8MAPPING_RFC8265,
|
||||
/* number of utf8mapping */
|
||||
IRC_SERVER_NUM_UTF8MAPPING,
|
||||
};
|
||||
|
||||
/* output queue of messages to server (for sending slowly to server) */
|
||||
|
||||
struct t_irc_outqueue
|
||||
@ -210,6 +219,7 @@ struct t_irc_server
|
||||
int user_max_length; /* max length of user (from msg 005) */
|
||||
int host_max_length; /* max length of host (from msg 005) */
|
||||
int casemapping; /* casemapping from msg 005 */
|
||||
int utf8mapping; /* utf8mapping from msg 005 */
|
||||
char *chantypes; /* chantypes from msg 005 (eg "&#") */
|
||||
char *chanmodes; /* chanmodes from msg 005 */
|
||||
/* (eg "beI,k,l,imnpstaqr") */
|
||||
@ -284,6 +294,7 @@ extern struct t_irc_server *irc_server_search (const char *server_name);
|
||||
extern struct t_irc_server *irc_server_casesearch (const char *server_name);
|
||||
extern int irc_server_search_option (const char *option_name);
|
||||
extern int irc_server_search_casemapping (const char *casemapping);
|
||||
extern int irc_server_search_utf8mapping (const char *utf8mapping);
|
||||
extern int irc_server_strcasecmp (struct t_irc_server *server,
|
||||
const char *string1, const char *string2);
|
||||
extern int irc_server_strncasecmp (struct t_irc_server *server,
|
||||
|
@ -339,7 +339,7 @@ irc_upgrade_read_cb (const void *pointer, void *data,
|
||||
int object_id,
|
||||
struct t_infolist *infolist)
|
||||
{
|
||||
int flags, sock, size, i, index, nicks_count, num_items;
|
||||
int flags, sock, size, i, index, nicks_count, num_items, utf8mapping;
|
||||
long number;
|
||||
time_t join_time;
|
||||
char *buf, option_name[64], **nicks, *nick_join, *pos, *error;
|
||||
@ -479,7 +479,7 @@ irc_upgrade_read_cb (const void *pointer, void *data,
|
||||
irc_upgrade_current_server->prefix_chars = strdup (str);
|
||||
}
|
||||
irc_upgrade_current_server->nick_max_length = weechat_infolist_integer (infolist, "nick_max_length");
|
||||
/* "user_max_length" is new in WeeChat 2.6 */
|
||||
/* "user_max_length" is new in WeeChat 2.6 */
|
||||
if (weechat_infolist_search_var (infolist, "user_max_length"))
|
||||
{
|
||||
irc_upgrade_current_server->user_max_length = weechat_infolist_integer (infolist, "user_max_length");
|
||||
@ -497,7 +497,7 @@ irc_upgrade_read_cb (const void *pointer, void *data,
|
||||
irc_upgrade_current_server->user_max_length = (int)number;
|
||||
}
|
||||
}
|
||||
/* "host_max_length" is new in WeeChat 2.6 */
|
||||
/* "host_max_length" is new in WeeChat 2.6 */
|
||||
if (weechat_infolist_search_var (infolist, "host_max_length"))
|
||||
{
|
||||
irc_upgrade_current_server->host_max_length = weechat_infolist_integer (infolist, "host_max_length");
|
||||
@ -516,6 +516,23 @@ irc_upgrade_read_cb (const void *pointer, void *data,
|
||||
}
|
||||
}
|
||||
irc_upgrade_current_server->casemapping = weechat_infolist_integer (infolist, "casemapping");
|
||||
/* "utf8mapping" is new in WeeChat 2.9 */
|
||||
if (weechat_infolist_search_var (infolist, "utf8mapping"))
|
||||
{
|
||||
irc_upgrade_current_server->utf8mapping = weechat_infolist_integer (infolist, "utf8mapping");
|
||||
}
|
||||
else
|
||||
{
|
||||
/* WeeChat <= 2.8 */
|
||||
str = irc_server_get_isupport_value (irc_upgrade_current_server,
|
||||
"UTF8MAPPING");
|
||||
if (str)
|
||||
{
|
||||
utf8mapping = irc_server_search_utf8mapping (str);
|
||||
if (utf8mapping >= 0)
|
||||
irc_upgrade_current_server->utf8mapping = utf8mapping;
|
||||
}
|
||||
}
|
||||
str = weechat_infolist_string (infolist, "chantypes");
|
||||
if (str)
|
||||
irc_upgrade_current_server->chantypes = strdup (str);
|
||||
|
@ -24,6 +24,7 @@
|
||||
extern "C"
|
||||
{
|
||||
#include "src/plugins/irc/irc-nick.h"
|
||||
#include "src/plugins/irc/irc-server.h"
|
||||
}
|
||||
|
||||
TEST_GROUP(IrcNick)
|
||||
@ -47,24 +48,95 @@ TEST(IrcNick, Valid)
|
||||
|
||||
TEST(IrcNick, IsNick)
|
||||
{
|
||||
struct t_irc_server *server;
|
||||
|
||||
/* no server, default utf8mapping = none */
|
||||
|
||||
/* empty nick */
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (""));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (" "));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, NULL));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, ""));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, " "));
|
||||
|
||||
/* invalid first char */
|
||||
LONGS_EQUAL(0, irc_nick_is_nick ("0abc"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick ("9abc"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick ("-abc"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "0abc"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "9abc"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "-abc"));
|
||||
|
||||
/* invalid chars in nick */
|
||||
LONGS_EQUAL(0, irc_nick_is_nick ("noël"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick ("testé"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick ("nick space"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "nick test"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "nick,test"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "nick?test"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "nick!test"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "nick@test"));
|
||||
|
||||
/* UTF-8 wide chars in nick */
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "noël"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "testé"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (NULL, "\xf0\xa4\xad\xa2")); /* han char */
|
||||
|
||||
/* valid nicks */
|
||||
LONGS_EQUAL(1, irc_nick_is_nick ("tester"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick ("bob"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick ("alice"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick ("very_long_nick_which_is_valid"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (NULL, "tester"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (NULL, "bob"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (NULL, "alice"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (NULL, "very_long_nick_which_is_valid"));
|
||||
|
||||
/* server with utf8mapping = rfc8265, nicklen = 20 */
|
||||
server = irc_server_alloc ("my_ircd");
|
||||
CHECK(server);
|
||||
if (server->chantypes)
|
||||
free (server->chantypes);
|
||||
server->utf8mapping =IRC_SERVER_UTF8MAPPING_RFC8265;
|
||||
server->nick_max_length = 20;
|
||||
|
||||
/* empty nick */
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, NULL));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, ""));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, " "));
|
||||
|
||||
/* nick too long */
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, "long_nick___length_21"));
|
||||
|
||||
/* valid nicks: first char allowed with utf8mapping = rfc8265 */
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "0abc"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "9abc"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "-abc"));
|
||||
|
||||
/* invalid chars in nick */
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, "nick test"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, "nick,test"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, "nick?test"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, "nick!test"));
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, "nick@test"));
|
||||
|
||||
/* valid nicks: UTF-8 */
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "noël"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "testé"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "\xf0\xa4\xad\xa2")); /* han char */
|
||||
|
||||
/* valid nicks with UTF-8 wide chars */
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "noël"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "testé"));
|
||||
|
||||
/* valid nicks */
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "tester"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "bob"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "alice"));
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "long_nick__length_20"));
|
||||
|
||||
/* max length: 4 bytes */
|
||||
server->nick_max_length = 4;
|
||||
|
||||
/* invalid nick: 8 bytes */
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, "\xf0\xa4\xad\xa2\xf0\xa4\xad\xa2"));
|
||||
|
||||
/* valid nick: 4 bytes */
|
||||
LONGS_EQUAL(1, irc_nick_is_nick (server, "\xf0\xa4\xad\xa2")); /* han char */
|
||||
|
||||
/* max length: 3 bytes */
|
||||
server->nick_max_length = 3;
|
||||
|
||||
/* invalid nick: 4 bytes */
|
||||
LONGS_EQUAL(0, irc_nick_is_nick (server, "\xf0\xa4\xad\xa2")); /* han char */
|
||||
|
||||
irc_server_free (server);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user