From 7184d34371a2b7f8da984040c566f6c1c8060799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Wed, 20 Nov 2024 21:53:29 +0100 Subject: [PATCH] irc: add infos "irc_ptr_server", "irc_ptr_channel" and "irc_ptr_nick" --- CHANGELOG.md | 1 + po/cs.po | 27 ++++++- po/de.po | 27 ++++++- po/es.po | 26 ++++++- po/fr.po | 19 ++++- po/hu.po | 23 +++++- po/it.po | 26 ++++++- po/ja.po | 27 ++++++- po/pl.po | 27 ++++++- po/pt.po | 27 ++++++- po/pt_BR.po | 26 ++++++- po/ru.po | 23 +++++- po/sr.po | 27 ++++++- po/tr.po | 27 ++++++- po/weechat.pot | 17 ++++- src/plugins/irc/irc-info.c | 145 +++++++++++++++++++++++++++++++++++++ 16 files changed, 480 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33699a0b0..08e80ea7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ - relay: display connection status in input prompt of remote buffers, if not connected or if fetching data from remote - irc: add option irc.look.notice_nicks_disable_notify +- irc: add infos "irc_ptr_server", "irc_ptr_channel" and "irc_ptr_nick" ### Fixed diff --git a/po/cs.po b/po/cs.po index e62f740fc..a46cf86cd 100644 --- a/po/cs.po +++ b/po/cs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: weechat-dev \n" @@ -11614,6 +11614,31 @@ msgstr "" msgid "server,message (message is the raw IRC message)" msgstr "" +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC server" +msgstr "získat ukazatel bufferu pro IRC server/kanál/přezdívku" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC channel" +msgstr "získat ukazatel bufferu pro IRC server/kanál/přezdívku" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "opustit kanál" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC nick" +msgstr "získat ukazatel bufferu pro IRC server/kanál/přezdívku" + +#, fuzzy +#| msgid "server,channel,nick (nick is optional)" +msgid "server,channel,nick" +msgstr "server,kanál,přezdívka (kanál je volitelný)" + msgid "parse an IRC message" msgstr "rozdělit IRC zprávu" diff --git a/po/de.po b/po/de.po index b90cd9af7..dbab7058f 100644 --- a/po/de.po +++ b/po/de.po @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -12918,6 +12918,31 @@ msgstr "1, wenn der Nick ignoriert wird (Meldung wird nicht angezeigt)" msgid "server,message (message is the raw IRC message)" msgstr "Server,Nachricht (Nachricht ist die unverarbeitete IRC Nachricht)" +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC server" +msgstr "holt Buffer Pointer für einen IRC Server/Kanal/Nick" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC channel" +msgstr "holt Buffer Pointer für einen IRC Server/Kanal/Nick" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "Einen Kanal verlassen" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC nick" +msgstr "holt Buffer Pointer für einen IRC Server/Kanal/Nick" + +#, fuzzy +#| msgid "server,channel,nick (nick is optional)" +msgid "server,channel,nick" +msgstr "server,channel,nick (nick ist optional)" + msgid "parse an IRC message" msgstr "Parse eine IRC Nachricht" diff --git a/po/es.po b/po/es.po index 17d5f12cf..8c60bc6e1 100644 --- a/po/es.po +++ b/po/es.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Santiago Forero \n" "Language-Team: weechat-dev \n" @@ -11917,6 +11917,30 @@ msgstr "" msgid "server,message (message is the raw IRC message)" msgstr "" +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC server" +msgstr "devuelve el puntero del buffer de un servidor/canal/apodo IRC" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC channel" +msgstr "devuelve el puntero del buffer de un servidor/canal/apodo IRC" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "abandonar un canal" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC nick" +msgstr "devuelve el puntero del buffer de un servidor/canal/apodo IRC" + +#, fuzzy +msgid "server,channel,nick" +msgstr "servidor,canal (canal es opcional)" + msgid "parse an IRC message" msgstr "analiza un mensaje IRC" diff --git a/po/fr.po b/po/fr.po index 0b0b77cd2..f47b63bc4 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" -"PO-Revision-Date: 2024-11-20 18:17+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" +"PO-Revision-Date: 2024-11-20 21:51+0100\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -12647,6 +12647,21 @@ msgstr "1 si le pseudo est ignoré (le message n'est pas affiché)" msgid "server,message (message is the raw IRC message)" msgstr "serveur,message (message est le message brut IRC)" +msgid "get pointer to an IRC server" +msgstr "retourne le pointeur vers le serveur IRC" + +msgid "get pointer to an IRC channel" +msgstr "retourne le pointeur vers le canal IRC" + +msgid "server,channel" +msgstr "serveur,canal" + +msgid "get pointer to an IRC nick" +msgstr "retourne le pointeur vers le pseudo IRC" + +msgid "server,channel,nick" +msgstr "serveur,canal,pseudo" + msgid "parse an IRC message" msgstr "analyse un message IRC" diff --git a/po/hu.po b/po/hu.po index 5355b3506..5cac75b5b 100644 --- a/po/hu.po +++ b/po/hu.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -11101,6 +11101,27 @@ msgstr "" msgid "server,message (message is the raw IRC message)" msgstr "" +#, fuzzy +msgid "get pointer to an IRC server" +msgstr "szobák listája ahová be akarunk lépni csatlakozás után" + +#, fuzzy +msgid "get pointer to an IRC channel" +msgstr "szobák listája ahová be akarunk lépni csatlakozás után" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "kilépés a szobából" + +#, fuzzy +msgid "get pointer to an IRC nick" +msgstr "szobák listája ahová be akarunk lépni csatlakozás után" + +#, fuzzy +msgid "server,channel,nick" +msgstr "szoba: szoba neve" + #, fuzzy msgid "parse an IRC message" msgstr "üzenet: küldendő üzenet" diff --git a/po/it.po b/po/it.po index eda38d918..ddbc25e23 100644 --- a/po/it.po +++ b/po/it.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -11930,6 +11930,30 @@ msgstr "" msgid "server,message (message is the raw IRC message)" msgstr "" +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC server" +msgstr "ottiene puntatore al buffer per un server/canale/nick IRC" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC channel" +msgstr "ottiene puntatore al buffer per un server/canale/nick IRC" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "esce da un canale" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC nick" +msgstr "ottiene puntatore al buffer per un server/canale/nick IRC" + +#, fuzzy +msgid "server,channel,nick" +msgstr "server,canale (canale è opzionale)" + msgid "parse an IRC message" msgstr "controlla un messaggio IRC" diff --git a/po/ja.po b/po/ja.po index bd9bdb265..e87653cb4 100644 --- a/po/ja.po +++ b/po/ja.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese \n" "Language-Team: weechat-dev \n" @@ -12613,6 +12613,31 @@ msgstr "1 jeśli nick jest ignorowany (wiadomość nie jest wyświetlana)" msgid "server,message (message is the raw IRC message)" msgstr "serwer,wiadomość (wiadomość to nieprzetworzona wiadomość IRC)" +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC server" +msgstr "pobiera wskaźnik dla serwera/kanału/nicku IRC" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC channel" +msgstr "pobiera wskaźnik dla serwera/kanału/nicku IRC" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "opuszcza kanał" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC nick" +msgstr "pobiera wskaźnik dla serwera/kanału/nicku IRC" + +#, fuzzy +#| msgid "server,channel,nick (nick is optional)" +msgid "server,channel,nick" +msgstr "serwer,kanał,nick (nick jest opcjonalny)" + msgid "parse an IRC message" msgstr "przetwarza wiadomość IRC" diff --git a/po/pt.po b/po/pt.po index 6c816f720..a45c218f5 100644 --- a/po/pt.po +++ b/po/pt.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Vasco Almeida \n" "Language-Team: Portuguese <>\n" @@ -12306,6 +12306,31 @@ msgstr "" msgid "server,message (message is the raw IRC message)" msgstr "" +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC server" +msgstr "obter o ponteiro de buffer para um servidor/canal/nick de IRC" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC channel" +msgstr "obter o ponteiro de buffer para um servidor/canal/nick de IRC" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "sair de um canal" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC nick" +msgstr "obter o ponteiro de buffer para um servidor/canal/nick de IRC" + +#, fuzzy +#| msgid "server,channel,nick (nick is optional)" +msgid "server,channel,nick" +msgstr "servidor,canal,nick (o nick é opcional)" + msgid "parse an IRC message" msgstr "analisar um mensagem de IRC" diff --git a/po/pt_BR.po b/po/pt_BR.po index 4abfe8be2..06c462d9c 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Érico Nogueira \n" "Language-Team: weechat-dev \n" @@ -11473,6 +11473,30 @@ msgstr "" msgid "server,message (message is the raw IRC message)" msgstr "" +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC server" +msgstr "obter pointeiro do buffer para um servidor/canal/apelido IRC" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC channel" +msgstr "obter pointeiro do buffer para um servidor/canal/apelido IRC" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "sair do canal" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC nick" +msgstr "obter pointeiro do buffer para um servidor/canal/apelido IRC" + +#, fuzzy +msgid "server,channel,nick" +msgstr "servidor,canal (canal é opcional)" + msgid "parse an IRC message" msgstr "interpretar uma mensagem IRC" diff --git a/po/ru.po b/po/ru.po index e7781276a..1b43a2c15 100644 --- a/po/ru.po +++ b/po/ru.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -11148,6 +11148,27 @@ msgstr "" msgid "server,message (message is the raw IRC message)" msgstr "" +#, fuzzy +msgid "get pointer to an IRC server" +msgstr "Список каналов, на которые заходить при соединении с сервером" + +#, fuzzy +msgid "get pointer to an IRC channel" +msgstr "Список каналов, на которые заходить при соединении с сервером" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "покинуть канал" + +#, fuzzy +msgid "get pointer to an IRC nick" +msgstr "Список каналов, на которые заходить при соединении с сервером" + +#, fuzzy +msgid "server,channel,nick" +msgstr "канал: название канала" + #, fuzzy msgid "parse an IRC message" msgstr "сообщение: отправляемое сообщение" diff --git a/po/sr.po b/po/sr.po index f43109dcd..4840b653b 100644 --- a/po/sr.po +++ b/po/sr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Ivan Pešić \n" "Language-Team: weechat-dev \n" @@ -12249,6 +12249,31 @@ msgstr "1 ако се надимак игнорише (порука се не п msgid "server,message (message is the raw IRC message)" msgstr "сервер,порука (порука представља сирову IRC message)" +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC server" +msgstr "враћа показивач на бафер за IRC сервер/канал/надимак" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC channel" +msgstr "враћа показивач на бафер за IRC сервер/канал/надимак" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "напуштање канала" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC nick" +msgstr "враћа показивач на бафер за IRC сервер/канал/надимак" + +#, fuzzy +#| msgid "server,channel,nick (nick is optional)" +msgid "server,channel,nick" +msgstr "сервер,канал,надимак (надимак није обавезан)" + msgid "parse an IRC message" msgstr "парсирање IRC поруке" diff --git a/po/tr.po b/po/tr.po index 66a63a9a2..a00114120 100644 --- a/po/tr.po +++ b/po/tr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2024-11-20 18:17+0100\n" "Last-Translator: Emir SARI \n" "Language-Team: weechat-dev \n" @@ -12593,6 +12593,31 @@ msgstr "1 eğer takma ad yok sayılıyorsa (ileti görüntülenmez)" msgid "server,message (message is the raw IRC message)" msgstr "server,message (message, ham IRC iletisidir)" +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC server" +msgstr "bir IRC sunucusu/kanalı/takma adı için arabellek işaretçisini al" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC channel" +msgstr "bir IRC sunucusu/kanalı/takma adı için arabellek işaretçisini al" + +#, fuzzy +#| msgid "leave a channel" +msgid "server,channel" +msgstr "bir kanaldan ayrıl" + +#, fuzzy +#| msgid "get buffer pointer for an IRC server/channel/nick" +msgid "get pointer to an IRC nick" +msgstr "bir IRC sunucusu/kanalı/takma adı için arabellek işaretçisini al" + +#, fuzzy +#| msgid "server,channel,nick (nick is optional)" +msgid "server,channel,nick" +msgstr "server,channel,nick (nick isteğe bağlıdır)" + msgid "parse an IRC message" msgstr "bir IRC iletisi ayrıştır" diff --git a/po/weechat.pot b/po/weechat.pot index 9e3e9918b..a2006fd4c 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-11-20 16:48+0100\n" +"POT-Creation-Date: 2024-11-20 21:48+0100\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" @@ -10095,6 +10095,21 @@ msgstr "" msgid "server,message (message is the raw IRC message)" msgstr "" +msgid "get pointer to an IRC server" +msgstr "" + +msgid "get pointer to an IRC channel" +msgstr "" + +msgid "server,channel" +msgstr "" + +msgid "get pointer to an IRC nick" +msgstr "" + +msgid "server,channel,nick" +msgstr "" + msgid "parse an IRC message" msgstr "" diff --git a/src/plugins/irc/irc-info.c b/src/plugins/irc/irc-info.c index 6cbd5b00e..b15faeaa1 100644 --- a/src/plugins/irc/irc-info.c +++ b/src/plugins/irc/irc-info.c @@ -532,6 +532,136 @@ irc_info_info_irc_is_message_ignored_cb (const void *pointer, void *data, strdup ("1") : NULL; } +/* + * Returns IRC info "irc_ptr_server". + */ + +char * +irc_info_info_irc_ptr_server_cb (const void *pointer, void *data, + const char *info_name, + const char *arguments) +{ + struct t_irc_server *ptr_server; + char str_ptr[64]; + + /* make C compiler happy */ + (void) pointer; + (void) data; + (void) info_name; + + if (!arguments || !arguments[0]) + return NULL; + + ptr_server = irc_server_search (arguments); + if (!ptr_server) + return NULL; + + snprintf (str_ptr, sizeof (str_ptr), "0x%lx", (unsigned long)ptr_server); + return strdup (str_ptr); +} + +/* + * Returns IRC info "irc_ptr_channel". + */ + +char * +irc_info_info_irc_ptr_channel_cb (const void *pointer, void *data, + const char *info_name, + const char *arguments) +{ + struct t_irc_server *ptr_server; + struct t_irc_channel *ptr_channel; + char **argv, str_ptr[64]; + int argc; + + /* make C compiler happy */ + (void) pointer; + (void) data; + (void) info_name; + + if (!arguments || !arguments[0]) + return NULL; + + ptr_server = NULL; + ptr_channel = NULL; + + argv = weechat_string_split (arguments, ",", NULL, + WEECHAT_STRING_SPLIT_STRIP_LEFT + | WEECHAT_STRING_SPLIT_STRIP_RIGHT + | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, + 0, &argc); + if (!argv) + return NULL; + + if (argc == 2) + { + ptr_server = irc_server_search (argv[0]); + if (ptr_server) + ptr_channel = irc_channel_search (ptr_server, argv[1]); + } + weechat_string_free_split (argv); + + if (!ptr_channel) + return NULL; + + snprintf (str_ptr, sizeof (str_ptr), "0x%lx", (unsigned long)ptr_channel); + return strdup (str_ptr); +} + +/* + * Returns IRC info "irc_ptr_nick". + */ + +char * +irc_info_info_irc_ptr_nick_cb (const void *pointer, void *data, + const char *info_name, + const char *arguments) +{ + struct t_irc_server *ptr_server; + struct t_irc_channel *ptr_channel; + struct t_irc_nick *ptr_nick; + char **argv, str_ptr[64]; + int argc; + + /* make C compiler happy */ + (void) pointer; + (void) data; + (void) info_name; + + if (!arguments || !arguments[0]) + return NULL; + + ptr_server = NULL; + ptr_channel = NULL; + ptr_nick = NULL; + + argv = weechat_string_split (arguments, ",", NULL, + WEECHAT_STRING_SPLIT_STRIP_LEFT + | WEECHAT_STRING_SPLIT_STRIP_RIGHT + | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, + 0, &argc); + if (!argv) + return NULL; + + if (argc == 3) + { + ptr_server = irc_server_search (argv[0]); + if (ptr_server) + { + ptr_channel = irc_channel_search (ptr_server, argv[1]); + if (ptr_channel) + ptr_nick = irc_nick_search (ptr_server, ptr_channel, argv[2]); + } + } + weechat_string_free_split (argv); + + if (!ptr_nick) + return NULL; + + snprintf (str_ptr, sizeof (str_ptr), "0x%lx", (unsigned long)ptr_nick); + return strdup (str_ptr); +} + /* * Returns IRC info with hashtable "irc_message_parse". */ @@ -1276,6 +1406,21 @@ irc_info_init () N_("1 if the nick is ignored (message is not displayed)"), N_("server,message (message is the raw IRC message)"), &irc_info_info_irc_is_message_ignored_cb, NULL, NULL); + weechat_hook_info ( + "irc_ptr_server", + N_("get pointer to an IRC server"), + N_("server"), + &irc_info_info_irc_ptr_server_cb, NULL, NULL); + weechat_hook_info ( + "irc_ptr_channel", + N_("get pointer to an IRC channel"), + N_("server,channel"), + &irc_info_info_irc_ptr_channel_cb, NULL, NULL); + weechat_hook_info ( + "irc_ptr_nick", + N_("get pointer to an IRC nick"), + N_("server,channel,nick"), + &irc_info_info_irc_ptr_nick_cb, NULL, NULL); /* info_hashtable hooks */ weechat_hook_info_hashtable (