mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
irc: add support of capability "batch" (closes #1292)
This commit is contained in:
@@ -39,6 +39,7 @@ New features::
|
||||
* api: add optional argument with version in info "version_number"
|
||||
* alias: use lower case for default aliases, rename all aliases to lower case on upgrade (issue #1872)
|
||||
* irc: rename "ssl" options to "tls", connect with TLS and port 6697 by default
|
||||
* irc: add support of capability "batch" (issue #1292)
|
||||
* irc: add command `/rules` (issue #1864)
|
||||
* irc: add command `/knock` (issue #7)
|
||||
* irc: add server option "registered_mode", add fields "authentication_method" and "sasl_mechanism_used" in server (issue #1625)
|
||||
|
||||
@@ -3469,6 +3469,7 @@ WeeChat unterstützt folgende https://ircv3.net/irc/[IRCv3 extensions ^↗^,win
|
||||
* <<irc_ircv3_account_notify,account-notify>>
|
||||
* <<irc_ircv3_account_tag,account-tag>>
|
||||
* <<irc_ircv3_away_notify,away-notify>>
|
||||
* <<irc_ircv3_batch,batch>>
|
||||
* <<irc_ircv3_cap_notify,cap-notify>>
|
||||
* <<irc_ircv3_chghost,chghost>>
|
||||
* <<irc_ircv3_extended_join,extended-join>>
|
||||
@@ -3552,6 +3553,18 @@ einer bestimmten Farbe in der Nickliste dargestellt. Siehe folgende Optionen:
|
||||
* <<option_irc.server_default.away_check_max_nicks,irc.server_default.away_check_max_nicks>>
|
||||
* <<option_weechat.look.item_away_message,weechat.look.item_away_message>>
|
||||
|
||||
// TRANSLATION MISSING
|
||||
[[irc_ircv3_batch]]
|
||||
===== batch
|
||||
|
||||
Specification: https://ircv3.net/specs/extensions/batch[batch ^↗^,window=_blank]
|
||||
|
||||
This capability allows the server to send batched events (grouping of several
|
||||
messages that are related).
|
||||
|
||||
For now, WeeChat only stores messages received in a batch and processes as usual
|
||||
later, when the batch ends.
|
||||
|
||||
[[irc_ircv3_cap_notify]]
|
||||
===== cap-notify
|
||||
|
||||
|
||||
@@ -274,6 +274,7 @@ WeeChat "core" is located in following directories:
|
||||
| irc/ | IRC (Internet Relay Chat) plugin.
|
||||
| irc.c | Main IRC functions.
|
||||
| irc-bar-item.c | IRC bar items.
|
||||
| irc-batch.c | IRC batched events.
|
||||
| irc-buffer.c | IRC buffers.
|
||||
| irc-channel.c | IRC channels.
|
||||
| irc-color.c | IRC colors.
|
||||
@@ -435,6 +436,7 @@ WeeChat "core" is located in following directories:
|
||||
| test-gui-nick.cpp | Tests: nicks.
|
||||
| plugins/ | Root of unit tests for plugins.
|
||||
| irc/ | Root of unit tests for IRC plugin.
|
||||
| test-irc-batch.cpp | Tests: IRC batched events.
|
||||
| test-irc-buffer.cpp | Tests: IRC buffers.
|
||||
| test-irc-channel.cpp | Tests: IRC channels.
|
||||
| test-irc-color.cpp | Tests: IRC colors.
|
||||
|
||||
@@ -12337,6 +12337,12 @@ List of modifiers used by WeeChat and plugins:
|
||||
|===
|
||||
| Modifier | Min WeeChat | Modifier data | String | Output
|
||||
|
||||
| [[hook_modifier_irc_batch]] irc_batch | 4.0.0
|
||||
| Server name + "," + batch type + "," + batch parameters
|
||||
| Content of multiple messages, separated by a newline char ("\n").
|
||||
| New content of messages (number can be different), an empty string discards
|
||||
all messages in the batch.
|
||||
|
||||
| [[hook_modifier_irc_in_xxx]] irc_in_xxx ^(1)^ |
|
||||
| Server name
|
||||
| Content of message received from IRC server (before charset decoding). +
|
||||
|
||||
@@ -3405,6 +3405,7 @@ WeeChat supports the following https://ircv3.net/irc/[IRCv3 extensions ^↗^,wi
|
||||
* <<irc_ircv3_account_notify,account-notify>>
|
||||
* <<irc_ircv3_account_tag,account-tag>>
|
||||
* <<irc_ircv3_away_notify,away-notify>>
|
||||
* <<irc_ircv3_batch,batch>>
|
||||
* <<irc_ircv3_cap_notify,cap-notify>>
|
||||
* <<irc_ircv3_chghost,chghost>>
|
||||
* <<irc_ircv3_extended_join,extended-join>>
|
||||
@@ -3489,6 +3490,17 @@ with a specific color in the nicklist, using the following options:
|
||||
* <<option_irc.server_default.away_check_max_nicks,irc.server_default.away_check_max_nicks>>
|
||||
* <<option_weechat.look.item_away_message,weechat.look.item_away_message>>
|
||||
|
||||
[[irc_ircv3_batch]]
|
||||
===== batch
|
||||
|
||||
Specification: https://ircv3.net/specs/extensions/batch[batch ^↗^,window=_blank]
|
||||
|
||||
This capability allows the server to send batched events (grouping of several
|
||||
messages that are related).
|
||||
|
||||
For now, WeeChat only stores messages received in a batch and processes as usual
|
||||
later, when the batch ends.
|
||||
|
||||
[[irc_ircv3_cap_notify]]
|
||||
===== cap-notify
|
||||
|
||||
|
||||
@@ -276,6 +276,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|
||||
| irc/ | Extension IRC (Internet Relay Chat).
|
||||
| irc.c | Fonctions principales IRC.
|
||||
| irc-bar-item.c | Objets de barre IRC.
|
||||
| irc-batch.c | Évènements batch IRC.
|
||||
| irc-buffer.c | Tampons IRC.
|
||||
| irc-channel.c | Canaux IRC.
|
||||
| irc-color.c | Couleurs IRC.
|
||||
@@ -437,6 +438,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|
||||
| test-gui-nick.cpp | Tests : pseudos.
|
||||
| plugins/ | Racine des tests unitaires pour les extensions.
|
||||
| irc/ | Racine des tests unitaires pour l'extension IRC.
|
||||
| test-irc-batch.cpp | Tests : évènements batch IRC.
|
||||
| test-irc-buffer.cpp | Tests : tampons IRC.
|
||||
| test-irc-channel.cpp | Tests : canaux IRC.
|
||||
| test-irc-color.cpp | Tests : couleurs IRC.
|
||||
|
||||
@@ -12600,6 +12600,12 @@ Liste des modificateurs utilisés par WeeChat et les extensions :
|
||||
|===
|
||||
| Modificateur | WeeChat mini | Données du modificateur | Chaîne | Sortie
|
||||
|
||||
| [[hook_modifier_irc_batch]] irc_batch | 4.0.0
|
||||
| Nom de serveur + "," + type de batch + "," + paramètres du batch
|
||||
| Contenu de plusieurs messages, séparés par un caractère de retour chariot ("\n").
|
||||
| Nouveau contenu des messages (le nombre peut être différent), une chaîne vide
|
||||
annule tous les messages du batch.
|
||||
|
||||
| [[hook_modifier_irc_in_xxx]] irc_in_xxx ^(1)^ |
|
||||
| Nom de serveur
|
||||
| Contenu du message reçu du serveur IRC (avant décodage du jeu de caractères). +
|
||||
|
||||
@@ -3510,6 +3510,7 @@ WeeChat supporte les https://ircv3.net/irc/[extensions IRCv3 ^↗^,window=_blan
|
||||
* <<irc_ircv3_account_notify,account-notify>>
|
||||
* <<irc_ircv3_account_tag,account-tag>>
|
||||
* <<irc_ircv3_away_notify,away-notify>>
|
||||
* <<irc_ircv3_batch,batch>>
|
||||
* <<irc_ircv3_cap_notify,cap-notify>>
|
||||
* <<irc_ircv3_chghost,chghost>>
|
||||
* <<irc_ircv3_extended_join,extended-join>>
|
||||
@@ -3595,6 +3596,17 @@ les options suivantes :
|
||||
* <<option_irc.server_default.away_check_max_nicks,irc.server_default.away_check_max_nicks>>
|
||||
* <<option_weechat.look.item_away_message,weechat.look.item_away_message>>
|
||||
|
||||
[[irc_ircv3_batch]]
|
||||
===== batch
|
||||
|
||||
Spécification : https://ircv3.net/specs/extensions/batch[batch ^↗^,window=_blank]
|
||||
|
||||
Cette capacité autorise le serveur à envoyer des évènements "batch" (regroupement
|
||||
de plusieurs messages qui sont liés).
|
||||
|
||||
Pour l'instant, WeeChat stocke seulement ces messages reçus dans un "batch"
|
||||
et les traite plus tard comme d'habitude, lorsque le "batch" prend fin.
|
||||
|
||||
[[irc_ircv3_cap_notify]]
|
||||
===== cap-notify
|
||||
|
||||
|
||||
@@ -12878,6 +12878,13 @@ List of modifiers used by WeeChat and plugins:
|
||||
// TRANSLATION MISSING
|
||||
| Modificatore | Min WeeChat | Dati modificatore | Stringa | Output
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| [[hook_modifier_irc_batch]] irc_batch | 4.0.0
|
||||
| Server name + "," + batch type + "," + batch parameters
|
||||
| Content of multiple messages, separated by a newline char ("\n").
|
||||
| New content of messages (number can be different), an empty string discards
|
||||
all messages in the batch.
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| [[hook_modifier_irc_in_xxx]] irc_in_xxx ^(1)^ |
|
||||
| Nome server
|
||||
|
||||
@@ -3695,6 +3695,7 @@ WeeChat supports the following https://ircv3.net/irc/[IRCv3 extensions ^↗^,wi
|
||||
* <<irc_ircv3_account_notify,account-notify>>
|
||||
* <<irc_ircv3_account_tag,account-tag>>
|
||||
* <<irc_ircv3_away_notify,away-notify>>
|
||||
* <<irc_ircv3_batch,batch>>
|
||||
* <<irc_ircv3_cap_notify,cap-notify>>
|
||||
* <<irc_ircv3_chghost,chghost>>
|
||||
* <<irc_ircv3_extended_join,extended-join>>
|
||||
@@ -3779,6 +3780,17 @@ with a specific color in the nicklist, using the following options:
|
||||
* <<option_irc.server_default.away_check_max_nicks,irc.server_default.away_check_max_nicks>>
|
||||
* <<option_weechat.look.item_away_message,weechat.look.item_away_message>>
|
||||
|
||||
[[irc_ircv3_batch]]
|
||||
===== batch
|
||||
|
||||
Specification: https://ircv3.net/specs/extensions/batch[batch ^↗^,window=_blank]
|
||||
|
||||
This capability allows the server to send batched events (grouping of several
|
||||
messages that are related).
|
||||
|
||||
For now, WeeChat only stores messages received in a batch and processes as usual
|
||||
later, when the batch ends.
|
||||
|
||||
[[irc_ircv3_cap_notify]]
|
||||
===== cap-notify
|
||||
|
||||
|
||||
@@ -287,6 +287,8 @@ WeeChat "core" は以下のディレクトリに配置されています:
|
||||
| irc/ | IRC (Internet Relay Chat) プラグイン
|
||||
| irc.c | IRC の主要関数
|
||||
| irc-bar-item.c | IRC バー要素
|
||||
// TRANSLATION MISSING
|
||||
| irc-batch.c | IRC batched events.
|
||||
| irc-buffer.c | IRC バッファ
|
||||
| irc-channel.c | IRC チャンネル
|
||||
| irc-color.c | IRC 色
|
||||
@@ -474,6 +476,8 @@ WeeChat "core" は以下のディレクトリに配置されています:
|
||||
| plugins/ | プラグインの単体テストを収める最上位ディレクトリ
|
||||
| irc/ | IRC プラグインの単体テストを収める最上位ディレクトリ
|
||||
// TRANSLATION MISSING
|
||||
| test-irc-batch.cpp | Tests: IRC batched events.
|
||||
// TRANSLATION MISSING
|
||||
| test-irc-buffer.cpp | Tests: IRC buffers.
|
||||
// TRANSLATION MISSING
|
||||
| test-irc-channel.cpp | Tests: IRC channels.
|
||||
|
||||
@@ -12464,6 +12464,13 @@ WeeChat とプラグインが使う修飾子のリスト:
|
||||
// TRANSLATION MISSING
|
||||
| 修飾子 | Min WeeChat | 修飾子データ | 文字列 | 出力
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| [[hook_modifier_irc_batch]] irc_batch | 4.0.0
|
||||
| Server name + "," + batch type + "," + batch parameters
|
||||
| Content of multiple messages, separated by a newline char ("\n").
|
||||
| New content of messages (number can be different), an empty string discards
|
||||
all messages in the batch.
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| [[hook_modifier_irc_in_xxx]] irc_in_xxx ^(1)^ |
|
||||
| サーバ名
|
||||
|
||||
@@ -3562,6 +3562,7 @@ WeeChat supports the following https://ircv3.net/irc/[IRCv3 extensions ^↗^,wi
|
||||
* <<irc_ircv3_account_tag,account-tag>>
|
||||
* <<irc_ircv3_away_notify,away-notify>>
|
||||
* <<irc_ircv3_cap_notify,cap-notify>>
|
||||
* <<irc_ircv3_batch,batch>>
|
||||
* <<irc_ircv3_chghost,chghost>>
|
||||
* <<irc_ircv3_extended_join,extended-join>>
|
||||
* <<irc_ircv3_invite_notify,invite-notify>>
|
||||
@@ -3645,6 +3646,18 @@ with a specific color in the nicklist, using the following options:
|
||||
* <<option_irc.server_default.away_check_max_nicks,irc.server_default.away_check_max_nicks>>
|
||||
* <<option_weechat.look.item_away_message,weechat.look.item_away_message>>
|
||||
|
||||
// TRANSLATION MISSING
|
||||
[[irc_ircv3_batch]]
|
||||
===== batch
|
||||
|
||||
Specification: https://ircv3.net/specs/extensions/batch[batch ^↗^,window=_blank]
|
||||
|
||||
This capability allows the server to send batched events (grouping of several
|
||||
messages that are related).
|
||||
|
||||
For now, WeeChat only stores messages received in a batch and processes as usual
|
||||
later, when the batch ends.
|
||||
|
||||
[[irc_ircv3_cap_notify]]
|
||||
===== cap-notify
|
||||
|
||||
|
||||
@@ -3449,6 +3449,7 @@ WeeChat wspiera następujące https://ircv3.net/irc/[rozszerzenia IRCv3 ^↗^,w
|
||||
* <<irc_ircv3_account_notify,account-notify>>
|
||||
* <<irc_ircv3_account_tag,account-tag>>
|
||||
* <<irc_ircv3_away_notify,away-notify>>
|
||||
* <<irc_ircv3_batch,batch>>
|
||||
* <<irc_ircv3_cap_notify,cap-notify>>
|
||||
* <<irc_ircv3_chghost,chghost>>
|
||||
* <<irc_ircv3_extended_join,extended-join>>
|
||||
@@ -3533,6 +3534,18 @@ konkretnym kolorze na liście nicków, za pomocą następujących opcji:
|
||||
* <<option_irc.server_default.away_check_max_nicks,irc.server_default.away_check_max_nicks>>
|
||||
* <<option_weechat.look.item_away_message,weechat.look.item_away_message>>
|
||||
|
||||
// TRANSLATION MISSING
|
||||
[[irc_ircv3_batch]]
|
||||
===== batch
|
||||
|
||||
Specification: https://ircv3.net/specs/extensions/batch[batch ^↗^,window=_blank]
|
||||
|
||||
This capability allows the server to send batched events (grouping of several
|
||||
messages that are related).
|
||||
|
||||
For now, WeeChat only stores messages received in a batch and processes as usual
|
||||
later, when the batch ends.
|
||||
|
||||
[[irc_ircv3_cap_notify]]
|
||||
===== cap-notify
|
||||
|
||||
|
||||
@@ -276,6 +276,8 @@ WeeChat „језгро” се налази у следећим директо
|
||||
| irc/ | IRC (Internet Relay Chat) додатак.
|
||||
| irc.c | Основне IRC функције.
|
||||
| irc-bar-item.c | IRC ставке траке.
|
||||
// TRANSLATION MISSING
|
||||
| irc-batch.c | IRC batched events.
|
||||
| irc-buffer.c | IRC бафери.
|
||||
| irc-channel.c | IRC канали.
|
||||
| irc-color.c | IRC боје.
|
||||
@@ -437,6 +439,8 @@ WeeChat „језгро” се налази у следећим директо
|
||||
| test-gui-nick.cpp | Тестови: надимци.
|
||||
| plugins/ | Корен unit тестова додатака.
|
||||
| irc/ | Корен unit тестова IRC додатка.
|
||||
// TRANSLATION MISSING
|
||||
| test-irc-batch.cpp | Tests: IRC batched events.
|
||||
| test-irc-buffer.cpp | Тестови: IRC бафери.
|
||||
| test-irc-channel.cpp | Тестови: IRC канали.
|
||||
| test-irc-color.cpp | Тестови: IRC боје.
|
||||
|
||||
@@ -11931,6 +11931,13 @@ struct t_hook *weechat_hook_modifier (const char *modifier,
|
||||
|===
|
||||
| Модификатор | Мин WeeChat | Подаци модификатора | Стринг | Излаз
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| [[hook_modifier_irc_batch]] irc_batch | 4.0.0
|
||||
| Server name + "," + batch type + "," + batch parameters
|
||||
| Content of multiple messages, separated by a newline char ("\n").
|
||||
| New content of messages (number can be different), an empty string discards
|
||||
all messages in the batch.
|
||||
|
||||
| [[hook_modifier_irc_in_xxx]] irc_in_xxx ^(1)^ |
|
||||
| Име сервера
|
||||
| Садржај поруке примљене са IRC сервера (пре декодирања скупа карактера). +
|
||||
|
||||
@@ -3199,6 +3199,7 @@ WeeChat подржава следећа https://ircv3.net/irc/[IRCv3 проши
|
||||
* <<irc_ircv3_account_notify,account-notify>>
|
||||
* <<irc_ircv3_account_tag,account-tag>>
|
||||
* <<irc_ircv3_away_notify,away-notify>>
|
||||
* <<irc_ircv3_batch,batch>>
|
||||
* <<irc_ircv3_cap_notify,cap-notify>>
|
||||
* <<irc_ircv3_chghost,chghost>>
|
||||
* <<irc_ircv3_extended_join,extended-join>>
|
||||
@@ -3281,6 +3282,18 @@ WeeChat парсира ову ознаку у чува је у поруци, а
|
||||
* <<option_irc.server_default.away_check_max_nicks,irc.server_default.away_check_max_nicks>>
|
||||
* <<option_weechat.look.item_away_message,weechat.look.item_away_message>>
|
||||
|
||||
// TRANSLATION MISSING
|
||||
[[irc_ircv3_batch]]
|
||||
===== batch
|
||||
|
||||
Specification: https://ircv3.net/specs/extensions/batch[batch ^↗^,window=_blank]
|
||||
|
||||
This capability allows the server to send batched events (grouping of several
|
||||
messages that are related).
|
||||
|
||||
For now, WeeChat only stores messages received in a batch and processes as usual
|
||||
later, when the batch ends.
|
||||
|
||||
[[irc_ircv3_cap_notify]]
|
||||
===== cap-notify
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -7318,9 +7318,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -9719,6 +9719,11 @@ msgstr ""
|
||||
msgid "irc server"
|
||||
msgstr "irc server"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "irc kanál"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: nejste připojen k serveru"
|
||||
|
||||
@@ -26,7 +26,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 22:01+0200\n"
|
||||
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
|
||||
"Language-Team: German - Germany <weechatter@arcor.de>\n"
|
||||
@@ -9185,6 +9185,35 @@ msgstr "Aushandlung der Clientfähigkeit"
|
||||
msgid "ls || list || req|ack [<capability> [<capability>...]] || end"
|
||||
msgstr "ls || list || req|ack [<capability> [<capability>...]] || end"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " ls: list the capabilities supported by the server\n"
|
||||
#| " list: list the capabilities currently enabled\n"
|
||||
#| " req: request a new capability or remove a capability (if starting with "
|
||||
#| "\"-\", for example: \"-multi-prefix\")\n"
|
||||
#| " ack: acknowledge capabilities which require client-side "
|
||||
#| "acknowledgement\n"
|
||||
#| " end: end the capability negotiation\n"
|
||||
#| "\n"
|
||||
#| "Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
#| "\n"
|
||||
#| "Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
#| "notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
#| "prefix, server-time, setname, userhost-in-names.\n"
|
||||
#| "\n"
|
||||
#| "The capabilities to automatically enable on servers can be set in option "
|
||||
#| "irc.server_default.capabilities (or by server in option irc.server.xxx."
|
||||
#| "capabilities).\n"
|
||||
#| "\n"
|
||||
#| "Examples:\n"
|
||||
#| " display supported and enabled capabilities:\n"
|
||||
#| " /cap\n"
|
||||
#| " request capabilities multi-prefix and away-notify:\n"
|
||||
#| " /cap req multi-prefix away-notify\n"
|
||||
#| " request capability extended-join, remove capability multi-prefix:\n"
|
||||
#| " /cap req extended-join -multi-prefix\n"
|
||||
#| " remove capability away-notify:\n"
|
||||
#| " /cap req -away-notify"
|
||||
msgid ""
|
||||
" ls: list the capabilities supported by the server\n"
|
||||
" list: list the capabilities currently enabled\n"
|
||||
@@ -9195,9 +9224,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -12038,6 +12067,11 @@ msgstr "IRC Weiterleitung"
|
||||
msgid "irc server"
|
||||
msgstr "IRC-Server"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "IRC-Kanal"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: Es besteht keine Verbindung zum Server"
|
||||
|
||||
@@ -22,7 +22,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: Santiago Forero <santiago@forero.xyz>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -7957,9 +7957,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -10450,6 +10450,11 @@ msgstr "redirección irc"
|
||||
msgid "irc server"
|
||||
msgstr "servidor irc"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "canal irc"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: no estas conectado a ningún servidor"
|
||||
|
||||
@@ -21,8 +21,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-03 22:11+0200\n"
|
||||
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
"Language: fr\n"
|
||||
@@ -9024,9 +9024,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -9052,9 +9052,9 @@ msgstr ""
|
||||
"\n"
|
||||
"Sans paramètre, \"ls\" et \"list\" sont envoyés.\n"
|
||||
"\n"
|
||||
"Les capacités supportées par WeeChat sont : account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Les capacités supportées par WeeChat sont : account-notify, away-notify, "
|
||||
"batch, cap-notify, chghost, extended-join, invite-notify, message-tags, "
|
||||
"multi-prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"Les capacités à activer automatiquement sur les serveurs peuvent être "
|
||||
"définies dans l'option irc.server_default.capabilities (ou par serveur dans "
|
||||
@@ -11793,6 +11793,9 @@ msgstr "redirection irc"
|
||||
msgid "irc server"
|
||||
msgstr "serveur irc"
|
||||
|
||||
msgid "irc batch"
|
||||
msgstr "batch irc"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s : vous n'êtes pas connecté au serveur"
|
||||
|
||||
@@ -20,7 +20,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -6768,9 +6768,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -9179,6 +9179,10 @@ msgstr ""
|
||||
msgid "irc server"
|
||||
msgstr "szerver"
|
||||
|
||||
#, fuzzy
|
||||
msgid "irc batch"
|
||||
msgstr "%d szoba"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s nincs csatlakozva szerverhez!\n"
|
||||
|
||||
@@ -20,7 +20,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -7657,9 +7657,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -10181,6 +10181,11 @@ msgstr "redirezione irc"
|
||||
msgid "irc server"
|
||||
msgstr "server irc"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "canale irc"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: non connesso al server"
|
||||
|
||||
@@ -20,7 +20,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
|
||||
"Language-Team: Japanese <https://github.com/l/weechat/tree/master/"
|
||||
@@ -8674,9 +8674,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -11360,6 +11360,11 @@ msgstr "irc リダイレクト"
|
||||
msgid "irc server"
|
||||
msgstr "irc サーバ"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "irc チャンネル"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: サーバに接続していません"
|
||||
|
||||
@@ -22,7 +22,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n"
|
||||
"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
|
||||
@@ -9485,6 +9485,35 @@ msgstr "negocjacja możliwości klienta"
|
||||
msgid "ls || list || req|ack [<capability> [<capability>...]] || end"
|
||||
msgstr "ls || list || req|ack [<opcja> [<opcja>...]] || end"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " ls: list the capabilities supported by the server\n"
|
||||
#| " list: list the capabilities currently enabled\n"
|
||||
#| " req: request a new capability or remove a capability (if starting with "
|
||||
#| "\"-\", for example: \"-multi-prefix\")\n"
|
||||
#| " ack: acknowledge capabilities which require client-side "
|
||||
#| "acknowledgement\n"
|
||||
#| " end: end the capability negotiation\n"
|
||||
#| "\n"
|
||||
#| "Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
#| "\n"
|
||||
#| "Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
#| "notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
#| "prefix, server-time, setname, userhost-in-names.\n"
|
||||
#| "\n"
|
||||
#| "The capabilities to automatically enable on servers can be set in option "
|
||||
#| "irc.server_default.capabilities (or by server in option irc.server.xxx."
|
||||
#| "capabilities).\n"
|
||||
#| "\n"
|
||||
#| "Examples:\n"
|
||||
#| " display supported and enabled capabilities:\n"
|
||||
#| " /cap\n"
|
||||
#| " request capabilities multi-prefix and away-notify:\n"
|
||||
#| " /cap req multi-prefix away-notify\n"
|
||||
#| " request capability extended-join, remove capability multi-prefix:\n"
|
||||
#| " /cap req extended-join -multi-prefix\n"
|
||||
#| " remove capability away-notify:\n"
|
||||
#| " /cap req -away-notify"
|
||||
msgid ""
|
||||
" ls: list the capabilities supported by the server\n"
|
||||
" list: list the capabilities currently enabled\n"
|
||||
@@ -9495,9 +9524,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -12330,6 +12359,11 @@ msgstr "przekierowanie irc"
|
||||
msgid "irc server"
|
||||
msgstr "serwer irc"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "kanał irc"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: nie jesteś połączony z serwerem"
|
||||
|
||||
@@ -20,7 +20,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
|
||||
"Language-Team: Portuguese <>\n"
|
||||
@@ -8422,9 +8422,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -11140,6 +11140,11 @@ msgstr "redireção de irc"
|
||||
msgid "irc server"
|
||||
msgstr "servidor de irc"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "canal de irc"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: não está conectado ao servidor"
|
||||
|
||||
+9
-4
@@ -21,7 +21,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: Érico Nogueira <ericonr@disroot.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -7495,9 +7495,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -9713,6 +9713,11 @@ msgstr ""
|
||||
msgid "irc server"
|
||||
msgstr "servidor irc"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "canal irc"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: você não está conectado ao servidor"
|
||||
|
||||
@@ -21,7 +21,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -6810,9 +6810,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -9216,6 +9216,10 @@ msgstr ""
|
||||
msgid "irc server"
|
||||
msgstr "сервер"
|
||||
|
||||
#, fuzzy
|
||||
msgid "irc batch"
|
||||
msgstr "%d канал"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s вы не подключены к серверу\n"
|
||||
|
||||
@@ -20,7 +20,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-02 10:48+0400\n"
|
||||
"Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -123,8 +123,8 @@ msgstr ""
|
||||
" -P, --plugins <додаци> приликом покретања се учитавају само ови додаци\n"
|
||||
" (погледајте /help weechat.plugin.autoload)\n"
|
||||
" -r, --run-command <ком> покреће команд(у/е) након покретања;\n"
|
||||
" можете да раздвојите више команди са тачка "
|
||||
"запета и оне се израчунавају,\n"
|
||||
" можете да раздвојите више команди са тачка запета "
|
||||
"и оне се израчунавају,\n"
|
||||
" ова опција може да се зада више пута\n"
|
||||
" -s, --no-script приликом учитавања се не учитавају никакве "
|
||||
"скрипте\n"
|
||||
@@ -1109,9 +1109,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"list|listfull|listitems || add <име> <тип>[,<услови>] <позиција> <величина> "
|
||||
"<граничник> <ставка1>[,<ставка2>...] || default [input|title|status|"
|
||||
"nicklist] || rename <име> <ново_име> || del <име>|-all || set <име> "
|
||||
"<опција> <вредност> || hide|show|toggle <име> || scroll <име> <прозор> "
|
||||
"<скрол_вредн>"
|
||||
"nicklist] || rename <име> <ново_име> || del <име>|-all || set <име> <опција> "
|
||||
"<вредност> || hide|show|toggle <име> || scroll <име> <прозор> <скрол_вредн>"
|
||||
|
||||
msgid ""
|
||||
" list: list all bars\n"
|
||||
@@ -1906,8 +1905,8 @@ msgstr ""
|
||||
" ${buffer[my_pointer].full_name}: пуно име бафера са овим именом "
|
||||
"показивача (може да се користи у окидачима)\n"
|
||||
" hdata[показивач].var1.method(): када је var1 is a хеш табела, могу да се "
|
||||
"позивају методе „keys()”, „values()”, „keys_sorted()”, „keys_values()” "
|
||||
"и „keys_values_sorted()”\n"
|
||||
"позивају методе „keys()”, „values()”, „keys_sorted()”, „keys_values()” и "
|
||||
"„keys_values_sorted()”\n"
|
||||
"У вези имена hdata и променљивих, молим вас да погледате „Референтни "
|
||||
"приручник API додатака”, функцију „weechat_hdata_get”.\n"
|
||||
"\n"
|
||||
@@ -4032,8 +4031,8 @@ msgstr ""
|
||||
"формат времена за сваку линију која се приказује у баферима (погледајте man "
|
||||
"strftime за спецификаторе датума/времена) (напомена: садржај се израчунава, "
|
||||
"тако да са форматом можете да користите и боје „${color:xxx}”, погледајте /"
|
||||
"help eval); на пример, време употребом скале сивих: „${color:252}%H${color:"
|
||||
"243}%M${color:237}%S”"
|
||||
"help eval); на пример, време употребом скале сивих: "
|
||||
"„${color:252}%H${color:243}%M${color:237}%S”"
|
||||
|
||||
#. TRANSLATORS: string "${color:xxx}" must NOT be translated
|
||||
msgid ""
|
||||
@@ -6035,8 +6034,8 @@ msgid ""
|
||||
"%sBuffer property \"%s\" can not be disabled if buffer contains lines "
|
||||
"(buffer: %s)"
|
||||
msgstr ""
|
||||
"%sОсобина бафера „%s” не може да се искључи ако бафер садржи линије "
|
||||
"(бафер: %s)"
|
||||
"%sОсобина бафера „%s” не може да се искључи ако бафер садржи линије (бафер: "
|
||||
"%s)"
|
||||
|
||||
#, c-format
|
||||
msgid "%sIt is only possible to merge buffers with formatted content"
|
||||
@@ -6086,8 +6085,8 @@ msgid ""
|
||||
"%sInvalid key for mouse context \"%s\": it must start with \"@area\" (see /"
|
||||
"help key)"
|
||||
msgstr ""
|
||||
"%sНеважећи тастер у контексту миша „%s”: мора да почне са „@area” "
|
||||
"(погледајте /help key)"
|
||||
"%sНеважећи тастер у контексту миша „%s”: мора да почне са "
|
||||
"„@area” (погледајте /help key)"
|
||||
|
||||
#, c-format
|
||||
msgid "New key binding (context \"%s\"): %s%s => %s%s"
|
||||
@@ -6095,7 +6094,8 @@ msgstr "Ново везивање тастера (контекст „%s”): %s
|
||||
|
||||
#, c-format
|
||||
msgid "%sUnable to bind key \"%s\" in context \"%s\" (see /help key)"
|
||||
msgstr "%sНије успело повезивање пречице „%s” у контексту „%s” (погледајте /help key)"
|
||||
msgstr ""
|
||||
"%sНије успело повезивање пречице „%s” у контексту „%s” (погледајте /help key)"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
@@ -8776,6 +8776,35 @@ msgstr "преговарање могућности клијента"
|
||||
msgid "ls || list || req|ack [<capability> [<capability>...]] || end"
|
||||
msgstr "ls || list || req|ack [<могућност> [<могућност>...]] || end"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " ls: list the capabilities supported by the server\n"
|
||||
#| " list: list the capabilities currently enabled\n"
|
||||
#| " req: request a new capability or remove a capability (if starting with "
|
||||
#| "\"-\", for example: \"-multi-prefix\")\n"
|
||||
#| " ack: acknowledge capabilities which require client-side "
|
||||
#| "acknowledgement\n"
|
||||
#| " end: end the capability negotiation\n"
|
||||
#| "\n"
|
||||
#| "Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
#| "\n"
|
||||
#| "Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
#| "notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
#| "prefix, server-time, setname, userhost-in-names.\n"
|
||||
#| "\n"
|
||||
#| "The capabilities to automatically enable on servers can be set in option "
|
||||
#| "irc.server_default.capabilities (or by server in option irc.server.xxx."
|
||||
#| "capabilities).\n"
|
||||
#| "\n"
|
||||
#| "Examples:\n"
|
||||
#| " display supported and enabled capabilities:\n"
|
||||
#| " /cap\n"
|
||||
#| " request capabilities multi-prefix and away-notify:\n"
|
||||
#| " /cap req multi-prefix away-notify\n"
|
||||
#| " request capability extended-join, remove capability multi-prefix:\n"
|
||||
#| " /cap req extended-join -multi-prefix\n"
|
||||
#| " remove capability away-notify:\n"
|
||||
#| " /cap req -away-notify"
|
||||
msgid ""
|
||||
" ls: list the capabilities supported by the server\n"
|
||||
" list: list the capabilities currently enabled\n"
|
||||
@@ -8786,9 +8815,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -10159,8 +10188,8 @@ msgid ""
|
||||
"%s%s: warning: the command name \"%s\" must be lower case, the option \"irc."
|
||||
"msgbuffer.%s\" will not work"
|
||||
msgstr ""
|
||||
"%s%s: упозорење: име команде „%s” мора бити исписано малим словима, опција „"
|
||||
"irc.msgbuffer.%s” неће функционисати"
|
||||
"%s%s: упозорење: име команде „%s” мора бити исписано малим словима, опција "
|
||||
"„irc.msgbuffer.%s” неће функционисати"
|
||||
|
||||
msgid "buffer used to display message received from IRC server"
|
||||
msgstr "бафер који се користи за приказ поруке која се прими од IRC сервера"
|
||||
@@ -10174,8 +10203,8 @@ msgid ""
|
||||
"%s%s: warning: the CTCP name \"%s\" must be lower case, the option \"irc."
|
||||
"ctcp.%s\" will not work"
|
||||
msgstr ""
|
||||
"%s%s: упозорење: CTCP име „%s” мора бити исписано малим словима, опција „"
|
||||
"irc.ctcp.%s” неће функционисати"
|
||||
"%s%s: упозорење: CTCP име „%s” мора бити исписано малим словима, опција „irc."
|
||||
"ctcp.%s” неће функционисати"
|
||||
|
||||
msgid ""
|
||||
"format for CTCP reply or empty string for blocking CTCP (no reply), "
|
||||
@@ -11487,6 +11516,11 @@ msgstr "irc redirect"
|
||||
msgid "irc server"
|
||||
msgstr "irc server"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "irc channel"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: нисте повезани са сервером"
|
||||
@@ -13738,7 +13772,8 @@ msgstr "порт за релеј"
|
||||
|
||||
#, c-format
|
||||
msgid "Relay option renamed: \"relay.network.%s\" => \"relay.network.%s\""
|
||||
msgstr "Промењено је име Релеј опције: „relay.network.%s” => „relay.network.%s”"
|
||||
msgstr ""
|
||||
"Промењено је име Релеј опције: „relay.network.%s” => „relay.network.%s”"
|
||||
|
||||
#, c-format
|
||||
msgid "Relay option renamed: \"relay.%s.%s\" => \"relay.%s.%s\""
|
||||
|
||||
@@ -20,7 +20,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 20:23+0200\n"
|
||||
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -9076,6 +9076,35 @@ msgstr "istemci yeteneği pazarlığı"
|
||||
msgid "ls || list || req|ack [<capability> [<capability>...]] || end"
|
||||
msgstr "ls || list || req|ack [<yetenek> [<yetenek>...]] || end"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " ls: list the capabilities supported by the server\n"
|
||||
#| " list: list the capabilities currently enabled\n"
|
||||
#| " req: request a new capability or remove a capability (if starting with "
|
||||
#| "\"-\", for example: \"-multi-prefix\")\n"
|
||||
#| " ack: acknowledge capabilities which require client-side "
|
||||
#| "acknowledgement\n"
|
||||
#| " end: end the capability negotiation\n"
|
||||
#| "\n"
|
||||
#| "Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
#| "\n"
|
||||
#| "Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
#| "notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
#| "prefix, server-time, setname, userhost-in-names.\n"
|
||||
#| "\n"
|
||||
#| "The capabilities to automatically enable on servers can be set in option "
|
||||
#| "irc.server_default.capabilities (or by server in option irc.server.xxx."
|
||||
#| "capabilities).\n"
|
||||
#| "\n"
|
||||
#| "Examples:\n"
|
||||
#| " display supported and enabled capabilities:\n"
|
||||
#| " /cap\n"
|
||||
#| " request capabilities multi-prefix and away-notify:\n"
|
||||
#| " /cap req multi-prefix away-notify\n"
|
||||
#| " request capability extended-join, remove capability multi-prefix:\n"
|
||||
#| " /cap req extended-join -multi-prefix\n"
|
||||
#| " remove capability away-notify:\n"
|
||||
#| " /cap req -away-notify"
|
||||
msgid ""
|
||||
" ls: list the capabilities supported by the server\n"
|
||||
" list: list the capabilities currently enabled\n"
|
||||
@@ -9086,9 +9115,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -11891,6 +11920,11 @@ msgstr "irc yeniden yönlendirmesi"
|
||||
msgid "irc server"
|
||||
msgstr "irc sunucusu"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid "irc channel"
|
||||
msgid "irc batch"
|
||||
msgstr "irc kanalı"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr "%s%s: Sunucuya bağlı değilsiniz"
|
||||
|
||||
+7
-4
@@ -21,7 +21,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2023-05-01 21:44+0200\n"
|
||||
"POT-Creation-Date: 2023-05-03 22:10+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"
|
||||
@@ -6248,9 +6248,9 @@ msgid ""
|
||||
"\n"
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, cap-"
|
||||
"notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"Capabilities supported by WeeChat are: account-notify, away-notify, batch, "
|
||||
"cap-notify, chghost, extended-join, invite-notify, message-tags, multi-"
|
||||
"prefix, server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set in option irc."
|
||||
"server_default.capabilities (or by server in option irc.server.xxx."
|
||||
@@ -8232,6 +8232,9 @@ msgstr ""
|
||||
msgid "irc server"
|
||||
msgstr ""
|
||||
|
||||
msgid "irc batch"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: you are not connected to server"
|
||||
msgstr ""
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
add_library(irc MODULE
|
||||
irc.c irc.h
|
||||
irc-bar-item.c irc-bar-item.h
|
||||
irc-batch.c irc-batch.h
|
||||
irc-buffer.c irc-buffer.h
|
||||
irc-channel.c irc-channel.h
|
||||
irc-color.c irc-color.h
|
||||
|
||||
@@ -0,0 +1,379 @@
|
||||
/*
|
||||
* irc-batch.c - functions for managing batched events
|
||||
*
|
||||
* Copyright (C) 2023 Sébastien Helleu <flashcode@flashtux.org>
|
||||
*
|
||||
* This file is part of WeeChat, the extensible chat client.
|
||||
*
|
||||
* WeeChat is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* WeeChat is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "../weechat-plugin.h"
|
||||
#include "irc.h"
|
||||
#include "irc-batch.h"
|
||||
#include "irc-message.h"
|
||||
#include "irc-protocol.h"
|
||||
#include "irc-server.h"
|
||||
|
||||
|
||||
/*
|
||||
* Searches a batch reference.
|
||||
*
|
||||
* Returns pointer to batch, NULL if not found.
|
||||
*/
|
||||
|
||||
struct t_irc_batch *
|
||||
irc_batch_search (struct t_irc_server *server, const char *reference)
|
||||
{
|
||||
struct t_irc_batch *ptr_batch;
|
||||
|
||||
if (!server || !reference)
|
||||
return NULL;
|
||||
|
||||
for (ptr_batch = server->batches; ptr_batch;
|
||||
ptr_batch = ptr_batch->next_batch)
|
||||
{
|
||||
if (strcmp (ptr_batch->reference, reference) == 0)
|
||||
return ptr_batch;
|
||||
}
|
||||
|
||||
/* batch not found */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Adds a batch to list of batched events.
|
||||
*/
|
||||
|
||||
void
|
||||
irc_batch_add_to_list (struct t_irc_server *server, struct t_irc_batch *batch)
|
||||
{
|
||||
if (server->last_batch)
|
||||
server->last_batch->next_batch = batch;
|
||||
else
|
||||
server->batches = batch;
|
||||
batch->prev_batch = server->last_batch;
|
||||
batch->next_batch = NULL;
|
||||
server->last_batch = batch;
|
||||
}
|
||||
|
||||
/*
|
||||
* Starts a batch.
|
||||
*
|
||||
* Returns pointer to new batch, NULL if error.
|
||||
*/
|
||||
|
||||
struct t_irc_batch *
|
||||
irc_batch_start_batch (struct t_irc_server *server, const char *reference,
|
||||
const char *parent_ref, const char *type,
|
||||
const char *parameters)
|
||||
{
|
||||
struct t_irc_batch *ptr_batch;
|
||||
|
||||
if (!server || !reference || !type)
|
||||
return NULL;
|
||||
|
||||
/* check if reference already exists */
|
||||
ptr_batch = irc_batch_search (server, reference);
|
||||
if (ptr_batch)
|
||||
return NULL;
|
||||
|
||||
ptr_batch = malloc (sizeof (*ptr_batch));
|
||||
if (!ptr_batch)
|
||||
return NULL;
|
||||
|
||||
ptr_batch->reference = strdup (reference);
|
||||
ptr_batch->parent_ref = (parent_ref) ? strdup (parent_ref) : NULL;
|
||||
ptr_batch->type = strdup (type);
|
||||
ptr_batch->parameters = (parameters) ? strdup (parameters) : NULL;
|
||||
ptr_batch->start_time = time (NULL);
|
||||
ptr_batch->messages = NULL;
|
||||
ptr_batch->end_received = 0;
|
||||
ptr_batch->messages_processed = 0;
|
||||
|
||||
irc_batch_add_to_list (server, ptr_batch);
|
||||
|
||||
return ptr_batch;
|
||||
}
|
||||
|
||||
/*
|
||||
* Adds an IRC message to a batch reference.
|
||||
*
|
||||
* Returns:
|
||||
* 1: OK, message added
|
||||
* 0: error, message not added
|
||||
*/
|
||||
|
||||
int
|
||||
irc_batch_add_message (struct t_irc_server *server, const char *reference,
|
||||
const char *irc_message)
|
||||
{
|
||||
struct t_irc_batch *ptr_batch;
|
||||
|
||||
if (!server || !reference || !irc_message)
|
||||
return 0;
|
||||
|
||||
ptr_batch = irc_batch_search (server, reference);
|
||||
if (!ptr_batch)
|
||||
return 0;
|
||||
|
||||
if (!ptr_batch->messages)
|
||||
ptr_batch->messages = weechat_string_dyn_alloc (256);
|
||||
if (!ptr_batch->messages)
|
||||
return 0;
|
||||
|
||||
if ((*(ptr_batch->messages))[0])
|
||||
weechat_string_dyn_concat (ptr_batch->messages, "\n", -1);
|
||||
weechat_string_dyn_concat (ptr_batch->messages, irc_message, -1);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Frees a batch.
|
||||
*/
|
||||
|
||||
void
|
||||
irc_batch_free (struct t_irc_server *server, struct t_irc_batch *batch)
|
||||
{
|
||||
if (batch->reference)
|
||||
free (batch->reference);
|
||||
if (batch->parent_ref)
|
||||
free (batch->parent_ref);
|
||||
if (batch->type)
|
||||
free (batch->type);
|
||||
if (batch->parameters)
|
||||
free (batch->parameters);
|
||||
if (batch->messages)
|
||||
weechat_string_dyn_free (batch->messages, 1);
|
||||
|
||||
/* remove batch from list */
|
||||
if (batch->prev_batch)
|
||||
(batch->prev_batch)->next_batch = batch->next_batch;
|
||||
if (batch->next_batch)
|
||||
(batch->next_batch)->prev_batch = batch->prev_batch;
|
||||
if (server->batches == batch)
|
||||
server->batches = batch->next_batch;
|
||||
if (server->last_batch == batch)
|
||||
server->last_batch = batch->prev_batch;
|
||||
|
||||
free (batch);
|
||||
}
|
||||
|
||||
/*
|
||||
* Frees all batches from server.
|
||||
*/
|
||||
|
||||
void
|
||||
irc_batch_free_all (struct t_irc_server *server)
|
||||
{
|
||||
while (server->batches)
|
||||
{
|
||||
irc_batch_free (server, server->batches);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Processes messages in a batch.
|
||||
*/
|
||||
|
||||
void
|
||||
irc_batch_process_messages (struct t_irc_server *server,
|
||||
struct t_irc_batch *batch)
|
||||
{
|
||||
char **list_messages, *command, *channel, modifier_data[1024], *new_messages;
|
||||
int i, count_messages;
|
||||
|
||||
if (!batch || !batch->messages)
|
||||
return;
|
||||
|
||||
snprintf (modifier_data, sizeof (modifier_data),
|
||||
"%s,%s,%s",
|
||||
server->name,
|
||||
batch->type,
|
||||
batch->parameters);
|
||||
new_messages = weechat_hook_modifier_exec ("irc_batch", modifier_data,
|
||||
*(batch->messages));
|
||||
|
||||
/* no changes in new messages */
|
||||
if (new_messages && (strcmp (*(batch->messages), new_messages) == 0))
|
||||
{
|
||||
free (new_messages);
|
||||
new_messages = NULL;
|
||||
}
|
||||
|
||||
/* messages not dropped? */
|
||||
if (!new_messages || new_messages[0])
|
||||
{
|
||||
list_messages = weechat_string_split (
|
||||
(new_messages) ? new_messages : *(batch->messages),
|
||||
"\n", NULL, 0, 0, &count_messages);
|
||||
if (list_messages)
|
||||
{
|
||||
for (i = 0; i < count_messages; i++)
|
||||
{
|
||||
irc_message_parse (server,
|
||||
list_messages[i],
|
||||
NULL, /* tags */
|
||||
NULL, /* message_without_tags */
|
||||
NULL, /* nick */
|
||||
NULL, /* user */
|
||||
NULL, /* host */
|
||||
&command,
|
||||
&channel,
|
||||
NULL, /* arguments */
|
||||
NULL, /* text */
|
||||
NULL, /* params */
|
||||
NULL, /* num_params */
|
||||
NULL, /* pos_command */
|
||||
NULL, /* pos_arguments */
|
||||
NULL, /* pos_channel */
|
||||
NULL); /* pos_text */
|
||||
/* call receive callback, ignoring batch tags */
|
||||
irc_protocol_recv_command (server, list_messages[i], command,
|
||||
channel, 1);
|
||||
if (command)
|
||||
free (command);
|
||||
if (channel)
|
||||
free (channel);
|
||||
}
|
||||
weechat_string_free_split (list_messages);
|
||||
}
|
||||
}
|
||||
|
||||
if (new_messages)
|
||||
free (new_messages);
|
||||
}
|
||||
|
||||
/*
|
||||
* Ends a batch reference.
|
||||
*/
|
||||
|
||||
void
|
||||
irc_batch_end_batch (struct t_irc_server *server, const char *reference)
|
||||
{
|
||||
struct t_irc_batch *ptr_batch, *ptr_next_batch, *ptr_parent_batch;
|
||||
int num_processed;
|
||||
|
||||
if (!server || !reference)
|
||||
return;
|
||||
|
||||
ptr_batch = irc_batch_search (server, reference);
|
||||
if (!ptr_batch)
|
||||
return;
|
||||
|
||||
ptr_batch->end_received = 1;
|
||||
|
||||
/*
|
||||
* process messages in all batches, if these conditions are met:
|
||||
* - end_received = 1
|
||||
* - no parent or the parent has messages_processed = 1
|
||||
*/
|
||||
while (1)
|
||||
{
|
||||
num_processed = 0;
|
||||
for (ptr_batch = server->batches; ptr_batch;
|
||||
ptr_batch = ptr_batch->next_batch)
|
||||
{
|
||||
if (!ptr_batch->end_received || ptr_batch->messages_processed)
|
||||
continue;
|
||||
ptr_parent_batch = irc_batch_search (server, ptr_batch->parent_ref);
|
||||
if (!ptr_parent_batch || ptr_parent_batch->messages_processed)
|
||||
{
|
||||
irc_batch_process_messages (server, ptr_batch);
|
||||
ptr_batch->messages_processed = 1;
|
||||
num_processed++;
|
||||
}
|
||||
}
|
||||
if (num_processed == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
/* remove all batches that are processed */
|
||||
ptr_batch = server->batches;
|
||||
while (ptr_batch)
|
||||
{
|
||||
ptr_next_batch = ptr_batch->next_batch;
|
||||
if (ptr_batch->messages_processed)
|
||||
irc_batch_free (server, ptr_batch);
|
||||
ptr_batch = ptr_next_batch;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns hdata for batch.
|
||||
*/
|
||||
|
||||
struct t_hdata *
|
||||
irc_batch_hdata_batch_cb (const void *pointer, void *data,
|
||||
const char *hdata_name)
|
||||
{
|
||||
struct t_hdata *hdata;
|
||||
|
||||
/* make C compiler happy */
|
||||
(void) pointer;
|
||||
(void) data;
|
||||
|
||||
hdata = weechat_hdata_new (hdata_name, "prev_batch", "next_batch",
|
||||
0, 0, NULL, NULL);
|
||||
if (hdata)
|
||||
{
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, reference, STRING, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, parent_ref, STRING, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, type, STRING, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, parameters, STRING, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, start_time, TIME, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, messages, POINTER, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, end_received, INTEGER, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, messages_processed, INTEGER, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, prev_batch, POINTER, 0, NULL, hdata_name);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_batch, next_batch, POINTER, 0, NULL, hdata_name);
|
||||
}
|
||||
return hdata;
|
||||
}
|
||||
|
||||
/*
|
||||
* Prints batch infos in WeeChat log file (usually for crash dump).
|
||||
*/
|
||||
|
||||
void
|
||||
irc_batch_print_log (struct t_irc_server *server)
|
||||
{
|
||||
struct t_irc_batch *ptr_batch;
|
||||
|
||||
for (ptr_batch = server->batches; ptr_batch;
|
||||
ptr_batch = ptr_batch->next_batch)
|
||||
{
|
||||
weechat_log_printf ("");
|
||||
weechat_log_printf (" => batch (addr:0x%lx):", ptr_batch);
|
||||
weechat_log_printf (" reference . . . . . : '%s'", ptr_batch->reference);
|
||||
weechat_log_printf (" parent_ref. . . . . : '%s'", ptr_batch->parent_ref);
|
||||
weechat_log_printf (" type. . . . . . . . : '%s'", ptr_batch->type);
|
||||
weechat_log_printf (" parameters. . . . . : '%s'", ptr_batch->parameters);
|
||||
weechat_log_printf (" start_time. . . . . : %lld", (long long)ptr_batch->start_time);
|
||||
weechat_log_printf (" message . . . . . . : 0x%lx ('%s')",
|
||||
ptr_batch->messages,
|
||||
(ptr_batch->messages) ? *(ptr_batch->messages) : NULL);
|
||||
weechat_log_printf (" end_received. . . . : %d", ptr_batch->end_received);
|
||||
weechat_log_printf (" messages_processed. : %d", ptr_batch->messages_processed);
|
||||
weechat_log_printf (" prev_batch. . . . . : 0x%lx", ptr_batch->prev_batch);
|
||||
weechat_log_printf (" next_batch. . . . . : 0x%lx", ptr_batch->next_batch);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Sébastien Helleu <flashcode@flashtux.org>
|
||||
*
|
||||
* This file is part of WeeChat, the extensible chat client.
|
||||
*
|
||||
* WeeChat is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* WeeChat is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef WEECHAT_PLUGIN_IRC_BATCH_H
|
||||
#define WEECHAT_PLUGIN_IRC_BATCH_H
|
||||
|
||||
#include <time.h>
|
||||
|
||||
struct t_irc_server;
|
||||
|
||||
struct t_irc_batch
|
||||
{
|
||||
char *reference; /* batch reference */
|
||||
char *parent_ref; /* ref of parent batch (optional) */
|
||||
char *type; /* type */
|
||||
char *parameters; /* parameters */
|
||||
time_t start_time; /* start time (to auto-purge if */
|
||||
/* batch end is not received) */
|
||||
char **messages; /* messages separated by '\n' */
|
||||
int end_received; /* batch end reference received */
|
||||
int messages_processed; /* 1 if msgs have been processed */
|
||||
struct t_irc_batch *prev_batch; /* link to previous batch */
|
||||
struct t_irc_batch *next_batch; /* link to next batch */
|
||||
};
|
||||
|
||||
extern struct t_irc_batch *irc_batch_search (struct t_irc_server *server,
|
||||
const char *reference);
|
||||
extern struct t_irc_batch *irc_batch_start_batch (struct t_irc_server *server,
|
||||
const char *reference,
|
||||
const char *parent_ref,
|
||||
const char *type,
|
||||
const char *parameters);
|
||||
extern int irc_batch_add_message (struct t_irc_server *server,
|
||||
const char *reference,
|
||||
const char *irc_message);
|
||||
extern void irc_batch_end_batch (struct t_irc_server *server,
|
||||
const char *reference);
|
||||
extern void irc_batch_free (struct t_irc_server *server,
|
||||
struct t_irc_batch *batch);
|
||||
extern void irc_batch_free_all (struct t_irc_server *server);
|
||||
extern struct t_hdata *irc_batch_hdata_batch_cb (const void *pointer,
|
||||
void *data,
|
||||
const char *hdata_name);
|
||||
extern void irc_batch_print_log (struct t_irc_server *server);
|
||||
|
||||
#endif /* WEECHAT_PLUGIN_IRC_BATCH_H */
|
||||
@@ -1491,6 +1491,7 @@ irc_channel_display_nick_back_in_pv (struct t_irc_server *server,
|
||||
ptr_channel->buffer,
|
||||
0,
|
||||
irc_protocol_tags (
|
||||
server,
|
||||
"nick_back",
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
@@ -1078,7 +1078,8 @@ irc_command_me_channel_display (struct t_irc_server *server,
|
||||
weechat_printf_date_tags (
|
||||
channel->buffer,
|
||||
0,
|
||||
irc_protocol_tags ("privmsg",
|
||||
irc_protocol_tags (server,
|
||||
"privmsg",
|
||||
NULL,
|
||||
"irc_action,self_msg,notify_none,no_highlight",
|
||||
server->nick, NULL),
|
||||
@@ -1904,7 +1905,8 @@ IRC_COMMAND_CALLBACK(ctcp)
|
||||
irc_msgbuffer_get_target_buffer (
|
||||
ptr_server, ctcp_target, NULL, "ctcp", NULL),
|
||||
0,
|
||||
irc_protocol_tags ("privmsg",
|
||||
irc_protocol_tags (ptr_server,
|
||||
"privmsg",
|
||||
NULL,
|
||||
"irc_ctcp,self_msg,notify_none,no_highlight",
|
||||
NULL, NULL),
|
||||
@@ -3802,6 +3804,7 @@ IRC_COMMAND_CALLBACK(msg)
|
||||
ptr_server->buffer,
|
||||
0,
|
||||
irc_protocol_tags (
|
||||
ptr_server,
|
||||
"privmsg",
|
||||
NULL,
|
||||
"self_msg,notify_none,no_highlight",
|
||||
@@ -6953,9 +6956,9 @@ irc_command_init ()
|
||||
"Without argument, \"ls\" and \"list\" are sent.\n"
|
||||
"\n"
|
||||
"Capabilities supported by WeeChat are: "
|
||||
"account-notify, away-notify, cap-notify, chghost, extended-join, "
|
||||
"invite-notify, message-tags, multi-prefix, server-time, setname, "
|
||||
"userhost-in-names.\n"
|
||||
"account-notify, away-notify, batch, cap-notify, chghost, "
|
||||
"extended-join, invite-notify, message-tags, multi-prefix, "
|
||||
"server-time, setname, userhost-in-names.\n"
|
||||
"\n"
|
||||
"The capabilities to automatically enable on servers can be set "
|
||||
"in option irc.server_default.capabilities (or by server in "
|
||||
|
||||
@@ -54,10 +54,10 @@ struct t_irc_channel;
|
||||
}
|
||||
|
||||
/* list of supported capabilities (for completion in command /cap) */
|
||||
#define IRC_COMMAND_CAP_SUPPORTED_COMPLETION \
|
||||
"account-notify|away-notify|cap-notify|chghost|extended-join|" \
|
||||
"invite-notify|message-tags|multi-prefix|server-time|setname|" \
|
||||
"userhost-in-names"
|
||||
#define IRC_COMMAND_CAP_SUPPORTED_COMPLETION \
|
||||
"account-notify|away-notify|batch|cap-notify|chghost|" \
|
||||
"extended-join|invite-notify|message-tags|multi-prefix|" \
|
||||
"server-time|setname|userhost-in-names"
|
||||
|
||||
/* list of supported CTCPs (for completion in command /ctcp) */
|
||||
#define IRC_COMMAND_CTCP_SUPPORTED_COMPLETION \
|
||||
|
||||
@@ -143,7 +143,7 @@ irc_ctcp_display_request (struct t_irc_server *server,
|
||||
server, nick, NULL, "ctcp",
|
||||
(channel) ? channel->buffer : NULL),
|
||||
date,
|
||||
irc_protocol_tags (command, tags, "irc_ctcp", NULL, address),
|
||||
irc_protocol_tags (server, command, tags, "irc_ctcp", NULL, address),
|
||||
_("%sCTCP requested by %s%s%s: %s%s%s%s%s%s"),
|
||||
weechat_prefix ("network"),
|
||||
irc_nick_color_for_msg (server, 0, NULL, nick),
|
||||
@@ -211,7 +211,8 @@ irc_ctcp_display_reply_from_nick (struct t_irc_server *server, time_t date,
|
||||
irc_msgbuffer_get_target_buffer (
|
||||
server, nick, NULL, "ctcp", NULL),
|
||||
date,
|
||||
irc_protocol_tags (command, tags, "irc_ctcp", NULL, NULL),
|
||||
irc_protocol_tags (server, command, tags, "irc_ctcp",
|
||||
NULL, NULL),
|
||||
/* TRANSLATORS: %.3fs is a float number + "s" ("seconds") */
|
||||
_("%sCTCP reply from %s%s%s: %s%s%s %.3fs"),
|
||||
weechat_prefix ("network"),
|
||||
@@ -230,7 +231,8 @@ irc_ctcp_display_reply_from_nick (struct t_irc_server *server, time_t date,
|
||||
irc_msgbuffer_get_target_buffer (
|
||||
server, nick, NULL, "ctcp", NULL),
|
||||
date,
|
||||
irc_protocol_tags (command, tags, "irc_ctcp", NULL, address),
|
||||
irc_protocol_tags (server, command, tags, "irc_ctcp", NULL,
|
||||
address),
|
||||
_("%sCTCP reply from %s%s%s: %s%s%s%s%s"),
|
||||
weechat_prefix ("network"),
|
||||
irc_nick_color_for_msg (server, 0, NULL, nick),
|
||||
@@ -249,7 +251,7 @@ irc_ctcp_display_reply_from_nick (struct t_irc_server *server, time_t date,
|
||||
irc_msgbuffer_get_target_buffer (
|
||||
server, nick, NULL, "ctcp", NULL),
|
||||
date,
|
||||
irc_protocol_tags (command, tags, NULL, NULL, address),
|
||||
irc_protocol_tags (server, command, tags, NULL, NULL, address),
|
||||
_("%sCTCP reply from %s%s%s: %s%s%s%s%s"),
|
||||
weechat_prefix ("network"),
|
||||
irc_nick_color_for_msg (server, 0, NULL, nick),
|
||||
@@ -344,6 +346,7 @@ irc_ctcp_reply_to_nick (struct t_irc_server *server,
|
||||
(channel) ? channel->buffer : NULL),
|
||||
0,
|
||||
irc_protocol_tags (
|
||||
server,
|
||||
command,
|
||||
tags,
|
||||
"irc_ctcp,irc_ctcp_reply,self_msg,notify_none,"
|
||||
@@ -1101,6 +1104,7 @@ irc_ctcp_recv (struct t_irc_server *server, time_t date,
|
||||
channel->buffer,
|
||||
date,
|
||||
irc_protocol_tags (
|
||||
server,
|
||||
command,
|
||||
tags,
|
||||
(nick_is_me) ?
|
||||
@@ -1144,6 +1148,7 @@ irc_ctcp_recv (struct t_irc_server *server, time_t date,
|
||||
ptr_channel->buffer,
|
||||
date,
|
||||
irc_protocol_tags (
|
||||
server,
|
||||
command,
|
||||
tags,
|
||||
(nick_is_me) ?
|
||||
@@ -1227,8 +1232,8 @@ irc_ctcp_recv (struct t_irc_server *server, time_t date,
|
||||
server, nick, NULL, "ctcp",
|
||||
(channel) ? channel->buffer : NULL),
|
||||
date,
|
||||
irc_protocol_tags (command, tags, "irc_ctcp", NULL,
|
||||
address),
|
||||
irc_protocol_tags (server, command, tags, "irc_ctcp",
|
||||
NULL, address),
|
||||
_("%sUnknown CTCP requested by %s%s%s: %s%s%s%s%s"),
|
||||
weechat_prefix ("network"),
|
||||
irc_nick_color_for_msg (server, 0, NULL, nick),
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
#include "../weechat-plugin.h"
|
||||
#include "irc.h"
|
||||
#include "irc-batch.h"
|
||||
#include "irc-channel.h"
|
||||
#include "irc-color.h"
|
||||
#include "irc-config.h"
|
||||
@@ -1294,4 +1295,7 @@ irc_info_init ()
|
||||
weechat_hook_hdata (
|
||||
"irc_server", N_("irc server"),
|
||||
&irc_server_hdata_server_cb, NULL, NULL);
|
||||
weechat_hook_hdata (
|
||||
"irc_batch", N_("irc batch"),
|
||||
&irc_batch_hdata_batch_cb, NULL, NULL);
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@ irc_input_user_message_display (struct t_gui_buffer *buffer, int action,
|
||||
buffer,
|
||||
0,
|
||||
irc_protocol_tags (
|
||||
ptr_server,
|
||||
"privmsg",
|
||||
NULL,
|
||||
str_tags,
|
||||
@@ -121,6 +122,7 @@ irc_input_user_message_display (struct t_gui_buffer *buffer, int action,
|
||||
buffer,
|
||||
0,
|
||||
irc_protocol_tags (
|
||||
ptr_server,
|
||||
"privmsg",
|
||||
NULL,
|
||||
str_tags,
|
||||
|
||||
+226
-119
File diff suppressed because it is too large
Load Diff
@@ -99,7 +99,8 @@ struct t_irc_protocol_msg
|
||||
t_irc_recv_func *recv_function; /* function called when msg is received */
|
||||
};
|
||||
|
||||
extern const char *irc_protocol_tags (const char *command,
|
||||
extern const char *irc_protocol_tags (struct t_irc_server *server,
|
||||
const char *command,
|
||||
struct t_hashtable *irc_msg_tags,
|
||||
const char *extra_tags,
|
||||
const char *nick,
|
||||
@@ -108,6 +109,7 @@ extern time_t irc_protocol_parse_time (const char *time);
|
||||
extern void irc_protocol_recv_command (struct t_irc_server *server,
|
||||
const char *irc_message,
|
||||
const char *msg_command,
|
||||
const char *msg_channel);
|
||||
const char *msg_channel,
|
||||
int ignore_batch_tag);
|
||||
|
||||
#endif /* WEECHAT_PLUGIN_IRC_PROTOCOL_H */
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "irc.h"
|
||||
#include "irc-server.h"
|
||||
#include "irc-bar-item.h"
|
||||
#include "irc-batch.h"
|
||||
#include "irc-buffer.h"
|
||||
#include "irc-channel.h"
|
||||
#include "irc-color.h"
|
||||
@@ -1740,6 +1741,8 @@ irc_server_alloc (const char *name)
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_TIME,
|
||||
NULL, NULL);
|
||||
new_server->batches = NULL;
|
||||
new_server->last_batch = NULL;
|
||||
new_server->buffer = NULL;
|
||||
new_server->buffer_as_string = NULL;
|
||||
new_server->channels = NULL;
|
||||
@@ -2218,6 +2221,7 @@ irc_server_free_data (struct t_irc_server *server)
|
||||
irc_redirect_free_all (server);
|
||||
irc_notify_free_all (server);
|
||||
irc_channel_free_all (server);
|
||||
irc_batch_free_all (server);
|
||||
|
||||
/* free hashtables */
|
||||
weechat_hashtable_free (server->join_manual);
|
||||
@@ -3552,7 +3556,8 @@ irc_server_msgq_flush ()
|
||||
irc_recv_msgq->server,
|
||||
ptr_msg2,
|
||||
command,
|
||||
channel);
|
||||
channel,
|
||||
0); /* ignore_batch_tag */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3855,6 +3860,7 @@ irc_server_timer_cb (const void *pointer, void *data, int remaining_calls)
|
||||
struct t_irc_server *ptr_server;
|
||||
struct t_irc_channel *ptr_channel;
|
||||
struct t_irc_redirect *ptr_redirect, *ptr_next_redirect;
|
||||
struct t_irc_batch *ptr_batch, *ptr_next_batch;
|
||||
time_t current_time;
|
||||
static struct timeval tv;
|
||||
int away_check, refresh_lag;
|
||||
@@ -4024,6 +4030,17 @@ irc_server_timer_cb (const void *pointer, void *data, int remaining_calls)
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
ptr_batch = ptr_server->batches;
|
||||
while (ptr_batch)
|
||||
{
|
||||
ptr_next_batch = ptr_batch->next_batch;
|
||||
if (current_time > ptr_batch->start_time + (60 * 60))
|
||||
{
|
||||
/* batch expires after 1 hour if end not received */
|
||||
irc_batch_free (ptr_server, ptr_batch);
|
||||
}
|
||||
ptr_batch = ptr_next_batch;
|
||||
}
|
||||
ptr_server->last_data_purge = current_time;
|
||||
}
|
||||
}
|
||||
@@ -4115,6 +4132,9 @@ irc_server_close_connection (struct t_irc_server *server)
|
||||
/* remove all keys for joins without switch */
|
||||
weechat_hashtable_remove_all (server->join_noswitch);
|
||||
|
||||
/* remove all batched events pending */
|
||||
irc_batch_free_all (server);
|
||||
|
||||
/* server is now disconnected */
|
||||
server->authentication_method = IRC_SERVER_AUTH_METHOD_NONE;
|
||||
server->sasl_mechanism_used = -1;
|
||||
@@ -6319,6 +6339,8 @@ irc_server_hdata_server_cb (const void *pointer, void *data,
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, join_manual, HASHTABLE, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, join_channel_key, HASHTABLE, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, join_noswitch, HASHTABLE, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, batches, POINTER, 0, NULL, "irc_batch");
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, last_batch, POINTER, 0, NULL, "irc_batch");
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, buffer, POINTER, 0, NULL, "buffer");
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, buffer_as_string, STRING, 0, NULL, NULL);
|
||||
WEECHAT_HDATA_VAR(struct t_irc_server, channels, POINTER, 0, NULL, "irc_channel");
|
||||
@@ -7088,6 +7110,8 @@ irc_server_print_log ()
|
||||
weechat_log_printf (" join_noswitch . . . . . . : 0x%lx (hashtable: '%s')",
|
||||
ptr_server->join_noswitch,
|
||||
weechat_hashtable_get_string (ptr_server->join_noswitch, "keys_values"));
|
||||
weechat_log_printf (" batches . . . . . . . . . : 0x%lx", ptr_server->batches);
|
||||
weechat_log_printf (" last_batch. . . . . . . . : 0x%lx", ptr_server->last_batch);
|
||||
weechat_log_printf (" buffer. . . . . . . . . . : 0x%lx", ptr_server->buffer);
|
||||
weechat_log_printf (" buffer_as_string. . . . . : 0x%lx", ptr_server->buffer_as_string);
|
||||
weechat_log_printf (" channels. . . . . . . . . : 0x%lx", ptr_server->channels);
|
||||
@@ -7099,6 +7123,8 @@ irc_server_print_log ()
|
||||
|
||||
irc_notify_print_log (ptr_server);
|
||||
|
||||
irc_batch_print_log (ptr_server);
|
||||
|
||||
for (ptr_channel = ptr_server->channels; ptr_channel;
|
||||
ptr_channel = ptr_channel->next_channel)
|
||||
{
|
||||
|
||||
@@ -278,6 +278,8 @@ struct t_irc_server
|
||||
struct t_hashtable *join_manual; /* manual joins pending */
|
||||
struct t_hashtable *join_channel_key; /* keys pending for joins */
|
||||
struct t_hashtable *join_noswitch; /* joins w/o switch to buffer */
|
||||
struct t_irc_batch *batches; /* batched events (cap "batch") */
|
||||
struct t_irc_batch *last_batch; /* last batch */
|
||||
struct t_gui_buffer *buffer; /* GUI buffer allocated for server */
|
||||
char *buffer_as_string; /* used to return buffer info */
|
||||
struct t_irc_channel *channels; /* opened channels on server */
|
||||
|
||||
@@ -64,6 +64,7 @@ set(LIB_WEECHAT_UNIT_TESTS_PLUGINS_SRC unit/plugins/test-plugins.cpp)
|
||||
|
||||
if(ENABLE_IRC)
|
||||
list(APPEND LIB_WEECHAT_UNIT_TESTS_PLUGINS_SRC
|
||||
unit/plugins/irc/test-irc-batch.cpp
|
||||
unit/plugins/irc/test-irc-buffer.cpp
|
||||
unit/plugins/irc/test-irc-channel.cpp
|
||||
unit/plugins/irc/test-irc-color.cpp
|
||||
|
||||
@@ -0,0 +1,218 @@
|
||||
/*
|
||||
* test-irc-batch.cpp - test IRC batch functions
|
||||
*
|
||||
* Copyright (C) 2023 Sébastien Helleu <flashcode@flashtux.org>
|
||||
*
|
||||
* This file is part of WeeChat, the extensible chat client.
|
||||
*
|
||||
* WeeChat is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* WeeChat is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with WeeChat. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "CppUTest/TestHarness.h"
|
||||
|
||||
#include "tests/tests.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <string.h>
|
||||
#include "src/plugins/irc/irc-batch.h"
|
||||
#include "src/plugins/irc/irc-server.h"
|
||||
}
|
||||
|
||||
TEST_GROUP(IrcBatch)
|
||||
{
|
||||
};
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_batch_search
|
||||
*/
|
||||
|
||||
TEST(IrcBatch, Search)
|
||||
{
|
||||
struct t_irc_server *server;
|
||||
struct t_irc_batch *batch1, *batch2;
|
||||
|
||||
server = irc_server_alloc ("server");
|
||||
CHECK(server);
|
||||
|
||||
batch1 = irc_batch_start_batch (server, "ref1", "parent_ref", "type", "params");
|
||||
CHECK(batch1);
|
||||
|
||||
batch2 = irc_batch_start_batch (server, "ref2", "parent_ref", "type", "params");
|
||||
CHECK(batch2);
|
||||
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (NULL, NULL));
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (NULL, ""));
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (server, ""));
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (server, "does_not_exist"));
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (server, "REF1"));
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (server, "REF2"));
|
||||
|
||||
POINTERS_EQUAL(batch1, irc_batch_search (server, "ref1"));
|
||||
POINTERS_EQUAL(batch2, irc_batch_search (server, "ref2"));
|
||||
|
||||
irc_batch_end_batch (server, "ref1");
|
||||
irc_batch_end_batch (server, "ref2");
|
||||
|
||||
irc_server_free (server);
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_batch_add_to_list
|
||||
* irc_batch_start_batch
|
||||
* irc_batch_free
|
||||
*/
|
||||
|
||||
TEST(IrcBatch, StartBatch)
|
||||
{
|
||||
struct t_irc_server *server;
|
||||
struct t_irc_batch *batch;
|
||||
|
||||
server = irc_server_alloc ("server");
|
||||
CHECK(server);
|
||||
|
||||
POINTERS_EQUAL(NULL, server->batches);
|
||||
|
||||
batch = irc_batch_start_batch (server, "ref", NULL, "type", NULL);
|
||||
CHECK(batch);
|
||||
POINTERS_EQUAL(batch, server->batches);
|
||||
STRCMP_EQUAL("ref", batch->reference);
|
||||
POINTERS_EQUAL(NULL, batch->parent_ref);
|
||||
STRCMP_EQUAL("type", batch->type);
|
||||
POINTERS_EQUAL(NULL, batch->parameters);
|
||||
CHECK(batch->start_time > 0);
|
||||
POINTERS_EQUAL(NULL, batch->messages);
|
||||
LONGS_EQUAL(0, batch->end_received);
|
||||
LONGS_EQUAL(0, batch->messages_processed);
|
||||
irc_batch_free (server, batch);
|
||||
|
||||
POINTERS_EQUAL(NULL, server->batches);
|
||||
|
||||
batch = irc_batch_start_batch (server, "ref", "parent_ref", "type", "params");
|
||||
CHECK(batch);
|
||||
POINTERS_EQUAL(batch, server->batches);
|
||||
STRCMP_EQUAL("ref", batch->reference);
|
||||
STRCMP_EQUAL("parent_ref", batch->parent_ref);
|
||||
STRCMP_EQUAL("type", batch->type);
|
||||
STRCMP_EQUAL("params", batch->parameters);
|
||||
CHECK(batch->start_time > 0);
|
||||
POINTERS_EQUAL(NULL, batch->messages);
|
||||
LONGS_EQUAL(0, batch->end_received);
|
||||
LONGS_EQUAL(0, batch->messages_processed);
|
||||
irc_batch_free (server, batch);
|
||||
|
||||
POINTERS_EQUAL(NULL, server->batches);
|
||||
|
||||
irc_server_free (server);
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_batch_add_message
|
||||
* irc_batch_free
|
||||
*/
|
||||
|
||||
TEST(IrcBatch, AddMessage)
|
||||
{
|
||||
struct t_irc_server *server;
|
||||
struct t_irc_batch *batch;
|
||||
|
||||
server = irc_server_alloc ("server");
|
||||
CHECK(server);
|
||||
|
||||
batch = irc_batch_start_batch (server, "ref", "parent_ref", "type", "params");
|
||||
CHECK(batch);
|
||||
|
||||
irc_batch_add_message (server, "ref", ":alice PRIVMSG #test: test1");
|
||||
STRCMP_EQUAL(*batch->messages, ":alice PRIVMSG #test: test1");
|
||||
irc_batch_add_message (server, "ref", ":alice PRIVMSG #test: test2");
|
||||
STRCMP_EQUAL(*batch->messages,
|
||||
":alice PRIVMSG #test: test1\n"
|
||||
":alice PRIVMSG #test: test2");
|
||||
|
||||
irc_batch_free (server, batch);
|
||||
|
||||
irc_server_free (server);
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_batch_free_all
|
||||
*/
|
||||
|
||||
TEST(IrcBatch, FreeAll)
|
||||
{
|
||||
struct t_irc_server *server;
|
||||
struct t_irc_batch *batch1, *batch2;
|
||||
|
||||
server = irc_server_alloc ("server");
|
||||
CHECK(server);
|
||||
|
||||
batch1 = irc_batch_start_batch (server, "ref1", "parent_ref", "type", "params");
|
||||
CHECK(batch1);
|
||||
|
||||
batch2 = irc_batch_start_batch (server, "ref2", "parent_ref", "type", "params");
|
||||
CHECK(batch2);
|
||||
|
||||
POINTERS_EQUAL(batch1, server->batches);
|
||||
POINTERS_EQUAL(batch2, server->batches->next_batch);
|
||||
|
||||
irc_batch_free_all (server);
|
||||
|
||||
POINTERS_EQUAL(NULL, server->batches);
|
||||
|
||||
irc_server_free (server);
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_batch_process_messages
|
||||
*/
|
||||
|
||||
TEST(IrcBatch, ProcessMessages)
|
||||
{
|
||||
/* tested in test-irc-protocol.cpp */
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_batch_end_batch
|
||||
*/
|
||||
|
||||
TEST(IrcBatch, EndBatch)
|
||||
{
|
||||
/* tested in test-irc-protocol.cpp */
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_batch_hdata_batch_cb
|
||||
*/
|
||||
|
||||
TEST(IrcBatch, HdataBatchCb)
|
||||
{
|
||||
/* TODO: write tests */
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_batch_print_log
|
||||
*/
|
||||
|
||||
TEST(IrcBatch, PrintLog)
|
||||
{
|
||||
/* TODO: write tests */
|
||||
}
|
||||
@@ -35,6 +35,7 @@ extern "C"
|
||||
#include "src/gui/gui-buffer.h"
|
||||
#include "src/gui/gui-color.h"
|
||||
#include "src/plugins/plugin.h"
|
||||
#include "src/plugins/irc/irc-batch.h"
|
||||
#include "src/plugins/irc/irc-ctcp.h"
|
||||
#include "src/plugins/irc/irc-protocol.h"
|
||||
#include "src/plugins/irc/irc-channel.h"
|
||||
@@ -65,8 +66,8 @@ extern char *irc_protocol_cap_to_enable (const char *capabilities,
|
||||
"USERLEN=16 HOSTLEN=32 CHANNELLEN=50 TOPICLEN=390 DEAF=D " \
|
||||
"CHANTYPES=# CHANMODES=eIbq,k,flj,CFLMPQScgimnprstuz " \
|
||||
"MONITOR=100"
|
||||
#define IRC_ALL_CAPS "account-notify,away-notify,cap-notify,chghost," \
|
||||
"extended-join,invite-notify,message-tags,multi-prefix," \
|
||||
#define IRC_ALL_CAPS "account-notify,away-notify,batch,cap-notify," \
|
||||
"chghost,extended-join,invite-notify,message-tags,multi-prefix," \
|
||||
"server-time,setname,userhost-in-names"
|
||||
|
||||
#define WEE_CHECK_CAP_TO_ENABLE(__result, __string, __sasl_requested) \
|
||||
@@ -261,66 +262,66 @@ TEST(IrcProtocol, Tags)
|
||||
hashtable_set (tags_2, "key1", "value1");
|
||||
hashtable_set (tags_2, "key_2,comma", "value2,comma");
|
||||
|
||||
POINTERS_EQUAL(NULL, irc_protocol_tags (NULL, NULL, NULL, NULL, NULL));
|
||||
POINTERS_EQUAL(NULL, irc_protocol_tags (NULL, NULL, NULL, NULL, NULL, NULL));
|
||||
|
||||
/* command */
|
||||
STRCMP_EQUAL("irc_privmsg,log1",
|
||||
irc_protocol_tags ("privmsg", NULL, NULL, NULL, NULL));
|
||||
irc_protocol_tags (NULL, "privmsg", NULL, NULL, NULL, NULL));
|
||||
STRCMP_EQUAL("irc_join,log4",
|
||||
irc_protocol_tags ("join", NULL, NULL, NULL, NULL));
|
||||
irc_protocol_tags (NULL, "join", NULL, NULL, NULL, NULL));
|
||||
|
||||
/* command + irc_msg_tags */
|
||||
STRCMP_EQUAL("irc_privmsg,log1",
|
||||
irc_protocol_tags ("privmsg", tags_empty, NULL, NULL, NULL));
|
||||
irc_protocol_tags (NULL, "privmsg", tags_empty, NULL, NULL, NULL));
|
||||
STRCMP_EQUAL("irc_join,log4",
|
||||
irc_protocol_tags ("join", tags_empty, NULL, NULL, NULL));
|
||||
irc_protocol_tags (NULL, "join", tags_empty, NULL, NULL, NULL));
|
||||
STRCMP_EQUAL("irc_privmsg,irc_tag_key1_value1,log1",
|
||||
irc_protocol_tags ("privmsg", tags_1, NULL, NULL, NULL));
|
||||
irc_protocol_tags (NULL, "privmsg", tags_1, NULL, NULL, NULL));
|
||||
STRCMP_EQUAL("irc_join,irc_tag_key1_value1,log4",
|
||||
irc_protocol_tags ("join", tags_1, NULL, NULL, NULL));
|
||||
irc_protocol_tags (NULL, "join", tags_1, NULL, NULL, NULL));
|
||||
STRCMP_EQUAL("irc_privmsg,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,log1",
|
||||
irc_protocol_tags ("privmsg", tags_2, NULL, NULL, NULL));
|
||||
irc_protocol_tags (NULL, "privmsg", tags_2, NULL, NULL, NULL));
|
||||
STRCMP_EQUAL("irc_join,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,log4",
|
||||
irc_protocol_tags ("join", tags_2, NULL, NULL, NULL));
|
||||
irc_protocol_tags (NULL, "join", tags_2, NULL, NULL, NULL));
|
||||
|
||||
/* command + extra_tags */
|
||||
STRCMP_EQUAL("irc_privmsg,log1",
|
||||
irc_protocol_tags ("privmsg", NULL, "", NULL, NULL));
|
||||
irc_protocol_tags (NULL, "privmsg", NULL, "", NULL, NULL));
|
||||
STRCMP_EQUAL("irc_join,log4",
|
||||
irc_protocol_tags ("join", NULL, "", NULL, NULL));
|
||||
irc_protocol_tags (NULL, "join", NULL, "", NULL, NULL));
|
||||
STRCMP_EQUAL("irc_privmsg,tag1,tag2,log1",
|
||||
irc_protocol_tags ("privmsg", NULL, "tag1,tag2", NULL, NULL));
|
||||
irc_protocol_tags (NULL, "privmsg", NULL, "tag1,tag2", NULL, NULL));
|
||||
STRCMP_EQUAL("irc_join,tag1,tag2,log4",
|
||||
irc_protocol_tags ("join", NULL, "tag1,tag2", NULL, NULL));
|
||||
irc_protocol_tags (NULL, "join", NULL, "tag1,tag2", NULL, NULL));
|
||||
|
||||
/* command + irc_msg_tags + extra_tags + nick */
|
||||
STRCMP_EQUAL("irc_privmsg,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,"
|
||||
"tag1,tag2,log1",
|
||||
irc_protocol_tags ("privmsg", tags_2, "tag1,tag2", "", NULL));
|
||||
irc_protocol_tags (NULL, "privmsg", tags_2, "tag1,tag2", "", NULL));
|
||||
STRCMP_EQUAL("irc_join,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,"
|
||||
"tag1,tag2,log4",
|
||||
irc_protocol_tags ("join", tags_2, "tag1,tag2", "", NULL));
|
||||
irc_protocol_tags (NULL, "join", tags_2, "tag1,tag2", "", NULL));
|
||||
STRCMP_EQUAL("irc_privmsg,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,"
|
||||
"tag1,tag2,nick_alice,log1",
|
||||
irc_protocol_tags ("privmsg", tags_2, "tag1,tag2", "alice", NULL));
|
||||
irc_protocol_tags (NULL, "privmsg", tags_2, "tag1,tag2", "alice", NULL));
|
||||
STRCMP_EQUAL("irc_join,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,"
|
||||
"tag1,tag2,nick_bob,log4",
|
||||
irc_protocol_tags ("join", tags_2, "tag1,tag2", "bob", NULL));
|
||||
irc_protocol_tags (NULL, "join", tags_2, "tag1,tag2", "bob", NULL));
|
||||
|
||||
/* command + irc_msg_tags + extra_tags + nick + address */
|
||||
STRCMP_EQUAL("irc_privmsg,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,"
|
||||
"tag1,tag2,nick_alice,log1",
|
||||
irc_protocol_tags ("privmsg", tags_2, "tag1,tag2", "alice", ""));
|
||||
irc_protocol_tags (NULL, "privmsg", tags_2, "tag1,tag2", "alice", ""));
|
||||
STRCMP_EQUAL("irc_join,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,"
|
||||
"tag1,tag2,nick_bob,log4",
|
||||
irc_protocol_tags ("join", tags_2, "tag1,tag2", "bob", ""));
|
||||
irc_protocol_tags (NULL, "join", tags_2, "tag1,tag2", "bob", ""));
|
||||
STRCMP_EQUAL("irc_privmsg,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,"
|
||||
"tag1,tag2,nick_alice,host_example.com,log1",
|
||||
irc_protocol_tags ("privmsg", tags_2, "tag1,tag2", "alice",
|
||||
irc_protocol_tags (NULL, "privmsg", tags_2, "tag1,tag2", "alice",
|
||||
"example.com"));
|
||||
STRCMP_EQUAL("irc_join,irc_tag_key1_value1,irc_tag_key-2;comma_value2;comma,"
|
||||
"tag1,tag2,nick_bob,host_example.com,log4",
|
||||
irc_protocol_tags ("join", tags_2, "tag1,tag2", "bob",
|
||||
irc_protocol_tags (NULL, "join", tags_2, "tag1,tag2", "bob",
|
||||
"example.com"));
|
||||
|
||||
hashtable_free (tags_empty);
|
||||
@@ -792,6 +793,132 @@ TEST(IrcProtocolWithServer, away)
|
||||
LONGS_EQUAL(0, ptr_nick->away);
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_protocol_cb_batch
|
||||
*/
|
||||
|
||||
TEST(IrcProtocolWithServer, batch)
|
||||
{
|
||||
struct t_irc_batch *ptr_batch;
|
||||
|
||||
SRV_INIT_JOIN2;
|
||||
|
||||
/* not enough parameters */
|
||||
RECV(":server BATCH");
|
||||
CHECK_ERROR_PARAMS("batch", 0, 1);
|
||||
RECV(":server BATCH +test");
|
||||
CHECK_ERROR_PARSE("batch", ":server BATCH +test");
|
||||
|
||||
/* invalid reference: does not start with '+' or '-' */
|
||||
RECV(":server BATCH zzz type");
|
||||
CHECK_NO_MSG;
|
||||
POINTERS_EQUAL(NULL, ptr_server->batches);
|
||||
|
||||
/* start batch without parameters */
|
||||
RECV(":server BATCH +ref example");
|
||||
CHECK_NO_MSG;
|
||||
ptr_batch = irc_batch_search (ptr_server, "ref");
|
||||
CHECK(ptr_batch);
|
||||
POINTERS_EQUAL(NULL, ptr_batch->parent_ref);
|
||||
STRCMP_EQUAL("example", ptr_batch->type);
|
||||
POINTERS_EQUAL(NULL, ptr_batch->parameters);
|
||||
POINTERS_EQUAL(NULL, ptr_batch->messages);
|
||||
LONGS_EQUAL(0, ptr_batch->end_received);
|
||||
LONGS_EQUAL(0, ptr_batch->messages_processed);
|
||||
|
||||
/* new messages with batch reference */
|
||||
RECV("@batch=ref :bob!user_b@host_b PRIVMSG #test :this is a test");
|
||||
RECV("@batch=ref :bob!user_b@host_b PRIVMSG #test :second test");
|
||||
RECV("@batch=ref :bob!user_b@host_b PRIVMSG #test :third test");
|
||||
CHECK_NO_MSG;
|
||||
|
||||
/* end batch */
|
||||
RECV(":server BATCH -ref");
|
||||
CHECK_CHAN("bob this is a test");
|
||||
CHECK_CHAN("bob second test");
|
||||
CHECK_CHAN("bob third test");
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (ptr_server, "ref"));
|
||||
|
||||
/* start batch with parameters */
|
||||
RECV(":server BATCH +ref example param1 param2 param3");
|
||||
CHECK_NO_MSG;
|
||||
ptr_batch = irc_batch_search (ptr_server, "ref");
|
||||
CHECK(ptr_batch);
|
||||
POINTERS_EQUAL(NULL, ptr_batch->parent_ref);
|
||||
STRCMP_EQUAL("example", ptr_batch->type);
|
||||
STRCMP_EQUAL("param1 param2 param3", ptr_batch->parameters);
|
||||
POINTERS_EQUAL(NULL, ptr_batch->messages);
|
||||
LONGS_EQUAL(0, ptr_batch->end_received);
|
||||
LONGS_EQUAL(0, ptr_batch->messages_processed);
|
||||
|
||||
/* new messages with batch reference */
|
||||
RECV("@batch=ref :bob!user_b@host_b PRIVMSG #test :test 1");
|
||||
RECV("@batch=ref :bob!user_b@host_b PRIVMSG #test :test 2");
|
||||
RECV("@batch=ref :bob!user_b@host_b PRIVMSG #test :test 3");
|
||||
CHECK_NO_MSG;
|
||||
|
||||
/* end batch */
|
||||
RECV(":server BATCH -ref");
|
||||
CHECK_CHAN("bob test 1");
|
||||
CHECK_CHAN("bob test 2");
|
||||
CHECK_CHAN("bob test 3");
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (ptr_server, "ref"));
|
||||
|
||||
/* start/end batch without parameters */
|
||||
RECV(":server BATCH +ref example");
|
||||
RECV(":server BATCH -ref");
|
||||
CHECK_NO_MSG;
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (ptr_server, "ref"));
|
||||
|
||||
/* interleaving batches */
|
||||
RECV(":server BATCH +1 example");
|
||||
CHECK_NO_MSG;
|
||||
CHECK(irc_batch_search (ptr_server, "1"));
|
||||
RECV("@batch=1 :bob!user_b@host_b PRIVMSG #test :message 1");
|
||||
CHECK_NO_MSG;
|
||||
RECV(":server BATCH +2 example");
|
||||
CHECK_NO_MSG;
|
||||
CHECK(irc_batch_search (ptr_server, "2"));
|
||||
RECV("@batch=1 :bob!user_b@host_b PRIVMSG #test :message 2");
|
||||
CHECK_NO_MSG;
|
||||
RECV("@batch=2 :bob!user_b@host_b PRIVMSG #test :message 4");
|
||||
CHECK_NO_MSG;
|
||||
RECV("@batch=1 :bob!user_b@host_b PRIVMSG #test :message 3");
|
||||
CHECK_NO_MSG;
|
||||
RECV(":server BATCH -1");
|
||||
CHECK_CHAN("bob message 1");
|
||||
CHECK_CHAN("bob message 2");
|
||||
CHECK_CHAN("bob message 3");
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (ptr_server, "1"));
|
||||
RECV("@batch=2 :bob!user_b@host_b PRIVMSG #test :message 5");
|
||||
CHECK_NO_MSG;
|
||||
RECV(":server BATCH -2");
|
||||
CHECK_CHAN("bob message 4");
|
||||
CHECK_CHAN("bob message 5");
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (ptr_server, "2"));
|
||||
|
||||
/* nested batch */
|
||||
RECV(":server BATCH +ref1 example1");
|
||||
CHECK_NO_MSG;
|
||||
CHECK(irc_batch_search (ptr_server, "ref1"));
|
||||
RECV("@batch=ref1 :server BATCH +ref2 example2");
|
||||
CHECK_NO_MSG;
|
||||
CHECK(irc_batch_search (ptr_server, "ref2"));
|
||||
RECV("@batch=ref1 :bob!user_b@host_b PRIVMSG #test :test ref1");
|
||||
CHECK_NO_MSG;
|
||||
RECV("@batch=ref2 :bob!user_b@host_b PRIVMSG #test :test ref2");
|
||||
CHECK_NO_MSG;
|
||||
RECV(":server BATCH -ref2");
|
||||
CHECK_NO_MSG;
|
||||
CHECK(irc_batch_search (ptr_server, "ref2"));
|
||||
RECV(":server BATCH -ref1");
|
||||
CHECK_CHAN("bob test ref1");
|
||||
CHECK_CHAN("bob test ref2");
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (ptr_server, "ref1"));
|
||||
POINTERS_EQUAL(NULL, irc_batch_search (ptr_server, "ref2"));
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_protocol_cap_to_enable
|
||||
|
||||
Reference in New Issue
Block a user