summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/en/weechat_plugin_api.en.txt66
-rw-r--r--doc/fr/weechat_plugin_api.fr.txt66
-rw-r--r--doc/it/weechat_plugin_api.it.txt66
-rw-r--r--src/gui/gui-focus.c26
-rw-r--r--src/plugins/irc/irc-bar-item.c4
5 files changed, 126 insertions, 102 deletions
diff --git a/doc/en/weechat_plugin_api.en.txt b/doc/en/weechat_plugin_api.en.txt
index 795a78fa3..38093aabc 100644
--- a/doc/en/weechat_plugin_api.en.txt
+++ b/doc/en/weechat_plugin_api.en.txt
@@ -8274,43 +8274,45 @@ Content of hashtable sent to callback (keys and values are of type "string"):
[width="100%",cols="5m,5,8,3",options="header"]
|========================================
-| Key ^(1)^ | Description | Value examples | Value if N/A
-| _x | column on screen 2+| "0" ... "n"
-| _y | line on screen 2+| "0" ... "n"
-| _key | key or mouse event 2+| "button1", "button2-gesture-left", ...
-| _window | pointer to window | "0x12345678" | ""
-| _window_number | number of window | "1" ... "n" | "*"
-| _buffer | pointer to buffer | "0x12345678" | ""
-| _buffer_number | number of buffer | "1" ... "n" | "-1"
-| _buffer_plugin | plugin name of buffer | "core", "irc", ... | ""
-| _buffer_name | name of buffer | "weechat", "freenode.#weechat", ... | ""
-| _chat | chat area indicator | "0" or "1" | "0"
-| _chat_line_x | column in line ^(2)^ | "0" ... "n" | "-1"
-| _chat_line_y | line number ^(2)^ | "0" ... "n" | "-1"
-| _chat_line_date | line date | "1313237175" | "0"
-| _chat_line_date_printed | line date ^(3)^ | "1313237175" | "0"
-| _chat_line_time | time displayed | "14:06:15" | ""
-| _chat_line_tags | tags of line | "irc_privmsg,notify_message,nick_FlashCode,log1" | ""
-| _chat_line_nick | nick of line | "FlashCode" | ""
-| _chat_line_prefix | prefix of line | "@FlashCode" | ""
-| _chat_line_message | message of line | "Hello world!" | ""
-| _chat_word | word at (x,y) | "Hello" | ""
-| _chat_bol | beginning of line ⇒ (x-1,y) | "He" | ""
-| _chat_eol | (x,y) ⇒ end of line | "llo world!" | ""
-| _bar_name | name of bar | "title", "nicklist", ... | ""
-| _bar_filling | filling of bar | "horizontal", "vertical", ... | ""
-| _bar_item_name | name of bar item | "buffer_nicklist", "hotlist", ... | ""
-| _bar_item_line | line in bar item | "0" ... "n" | "-1"
-| _bar_item_col | column in bar item | "0" ... "n" | "-1"
+| Key ^(1)^ | Description | Value examples | Value if N/A
+| _x | column on screen 2+| "0" ... "n"
+| _y | line on screen 2+| "0" ... "n"
+| _key | key or mouse event 2+| "button1", "button2-gesture-left", ...
+| _window | pointer to window | "0x12345678" | ""
+| _window_number | number of window | "1" ... "n" | "*"
+| _buffer | pointer to buffer | "0x12345678" | ""
+| _buffer_number | number of buffer | "1" ... "n" | "-1"
+| _buffer_plugin | plugin name of buffer | "core", "irc", ... | ""
+| _buffer_name | name of buffer | "weechat", "freenode.#weechat", ... | ""
+| _buffer_localvar_XXX ^(2)^ | local variables of buffer | any value | not set
+| _chat | chat area indicator | "0" or "1" | "0"
+| _chat_line_x | column in line ^(3)^ | "0" ... "n" | "-1"
+| _chat_line_y | line number ^(3)^ | "0" ... "n" | "-1"
+| _chat_line_date | line date | "1313237175" | "0"
+| _chat_line_date_printed | line date ^(4)^ | "1313237175" | "0"
+| _chat_line_time | time displayed | "14:06:15" | ""
+| _chat_line_tags | tags of line | "irc_privmsg,notify_message,nick_FlashCode,log1" | ""
+| _chat_line_nick | nick of line | "FlashCode" | ""
+| _chat_line_prefix | prefix of line | "@FlashCode" | ""
+| _chat_line_message | message of line | "Hello world!" | ""
+| _chat_word | word at (x,y) | "Hello" | ""
+| _chat_bol | beginning of line ⇒ (x-1,y) | "He" | ""
+| _chat_eol | (x,y) ⇒ end of line | "llo world!" | ""
+| _bar_name | name of bar | "title", "nicklist", ... | ""
+| _bar_filling | filling of bar | "horizontal", "vertical", ... | ""
+| _bar_item_name | name of bar item | "buffer_nicklist", "hotlist", ... | ""
+| _bar_item_line | line in bar item | "0" ... "n" | "-1"
+| _bar_item_col | column in bar item | "0" ... "n" | "-1"
|========================================
[NOTE]
^(1)^ There are same keys suffixed with "2" (ie: "_x2", "_y2", "_window2", ...)
with info on second point (useful only for mouse gestures, to know where mouse
button has been released). +
-^(2)^ It is set only for buffers with free content. +
-^(3)^ It is date when WeeChat adds line in buffer (greater or equal to
-"chat_line_date").
+^(2)^ `XXX` is name of local variable in buffer. +
+^(3)^ It is set only for buffers with free content. +
+^(4)^ It is date when WeeChat adds line in buffer (greater or equal to
+"_chat_line_date").
Extra info for bar item "buffer_nicklist":
@@ -8321,8 +8323,6 @@ Extra info for bar item "buffer_nicklist":
| prefix | core | prefix for nick
| group | core | group name
| irc_host | irc | host for nick (if known)
-| irc_server | irc | internal name of server
-| irc_channel | irc | channel name
|========================================
[NOTE]
diff --git a/doc/fr/weechat_plugin_api.fr.txt b/doc/fr/weechat_plugin_api.fr.txt
index df4068440..9b57d487b 100644
--- a/doc/fr/weechat_plugin_api.fr.txt
+++ b/doc/fr/weechat_plugin_api.fr.txt
@@ -8411,34 +8411,35 @@ Contenu de la hashtable envoyée au "callback" (les clés et valeurs sont de typ
[width="100%",cols="5m,5,8,3",options="header"]
|========================================
-| Clé ^(1)^ | Description | Exemples de valeur | Valeur si non applicable
-| _x | colonne sur l'écran 2+| "0" ... "n"
-| _y | ligne sur l'écran 2+| "0" ... "n"
-| _key | touche ou évènement souris 2+| "button1", "button2-gesture-left", ...
-| _window | pointeur vers la fenêtre | "0x12345678" | ""
-| _window_number | numéro de la fenêtre | "1" ... "n" | "*"
-| _buffer | pointeur vers le tampon | "0x12345678" | ""
-| _buffer_number | numéro du tampon | "1" ... "n" | "-1"
-| _buffer_plugin | nom d'extension du tampon | "core", "irc", ... | ""
-| _buffer_name | nom du tampon | "weechat", "freenode.#weechat", ... | ""
-| _chat | indicateur zone "chat" | "0" ou "1" | "0"
-| _chat_line_x | colonne de la ligne ^(2)^ | "0" ... "n" | "-1"
-| _chat_line_y | numéro de ligne ^(2)^ | "0" ... "n" | "-1"
-| _chat_line_date | date de la ligne | "1313237175" | "0"
-| _chat_line_date_printed | date de la ligne ^(3)^ | "1313237175" | "0"
-| _chat_line_time | heure affichée | "14:06:15" | ""
-| _chat_line_tags | étiquettes de la ligne | "irc_privmsg,notify_message,nick_FlashCode,log1" | ""
-| _chat_line_nick | pseudo de la ligne | "FlashCode" | ""
-| _chat_line_prefix | préfixe de la ligne | "@FlashCode" | ""
-| _chat_line_message | message de la ligne | "Hello world!" | ""
-| _chat_word | mot à la position (x,y) | "Hello" | ""
-| _chat_bol | début de ligne ⇒ (x-1,y) | "He" | ""
-| _chat_eol | (x,y) ⇒ fin de ligne | "llo world!" | ""
-| _bar_name | nom de la barre | "title", "nicklist", ... | ""
-| _bar_filling | remplissage de la barre | "horizontal", "vertical", ... | ""
-| _bar_item_name | nom de l'objet de barre | "buffer_nicklist", "hotlist", ... | ""
-| _bar_item_line | ligne dans l'objet de barre | "0" ... "n" | "-1"
-| _bar_item_col | colonne dans l'objet de barre | "0" ... "n" | "-1"
+| Clé ^(1)^ | Description | Exemples de valeur | Valeur si non applicable
+| _x | colonne sur l'écran 2+| "0" ... "n"
+| _y | ligne sur l'écran 2+| "0" ... "n"
+| _key | touche ou évènement souris 2+| "button1", "button2-gesture-left", ...
+| _window | pointeur vers la fenêtre | "0x12345678" | ""
+| _window_number | numéro de la fenêtre | "1" ... "n" | "*"
+| _buffer | pointeur vers le tampon | "0x12345678" | ""
+| _buffer_number | numéro du tampon | "1" ... "n" | "-1"
+| _buffer_plugin | nom d'extension du tampon | "core", "irc", ... | ""
+| _buffer_name | nom du tampon | "weechat", "freenode.#weechat", ... | ""
+| _buffer_localvar_XXX ^(2)^ | variables locales du tampon | toute chaîne | non défini
+| _chat | indicateur zone "chat" | "0" ou "1" | "0"
+| _chat_line_x | colonne de la ligne ^(3)^ | "0" ... "n" | "-1"
+| _chat_line_y | numéro de ligne ^(3)^ | "0" ... "n" | "-1"
+| _chat_line_date | date de la ligne | "1313237175" | "0"
+| _chat_line_date_printed | date de la ligne ^(4)^ | "1313237175" | "0"
+| _chat_line_time | heure affichée | "14:06:15" | ""
+| _chat_line_tags | étiquettes de la ligne | "irc_privmsg,notify_message,nick_FlashCode,log1" | ""
+| _chat_line_nick | pseudo de la ligne | "FlashCode" | ""
+| _chat_line_prefix | préfixe de la ligne | "@FlashCode" | ""
+| _chat_line_message | message de la ligne | "Hello world!" | ""
+| _chat_word | mot à la position (x,y) | "Hello" | ""
+| _chat_bol | début de ligne ⇒ (x-1,y) | "He" | ""
+| _chat_eol | (x,y) ⇒ fin de ligne | "llo world!" | ""
+| _bar_name | nom de la barre | "title", "nicklist", ... | ""
+| _bar_filling | remplissage de la barre | "horizontal", "vertical", ... | ""
+| _bar_item_name | nom de l'objet de barre | "buffer_nicklist", "hotlist", ... | ""
+| _bar_item_line | ligne dans l'objet de barre | "0" ... "n" | "-1"
+| _bar_item_col | colonne dans l'objet de barre | "0" ... "n" | "-1"
|========================================
[NOTE]
@@ -8446,9 +8447,10 @@ Contenu de la hashtable envoyée au "callback" (les clés et valeurs sont de typ
"_window2", ...) avec l'information sur le second point (pratique seulement
pour les gestes de souris, pour savoir où le bouton de la souris a été
relâché). +
-^(2)^ Renseigné seulement pour les tampons avec contenu libre. +
-^(3)^ Il s'agit de la date lorsque WeeChat ajoute la ligne dans le tampon
-(supérieure ou égale à "chat_line_date").
+^(2)^ `XXX` est le nom d'une variable locale du tampon. +
+^(3)^ Renseigné seulement pour les tampons avec contenu libre. +
+^(4)^ Il s'agit de la date lorsque WeeChat ajoute la ligne dans le tampon
+(supérieure ou égale à "_chat_line_date").
Informations additionnelles pour l'objet de barre "buffer_nicklist":
@@ -8459,8 +8461,6 @@ Informations additionnelles pour l'objet de barre "buffer_nicklist":
| prefix | core | préfixe du pseudonyme
| group | core | nom du groupe
| irc_host | irc | nom d'hôte pour le pseudonyme (si connu)
-| irc_server | irc | nom interne du serveur
-| irc_channel | irc | nom du canal
|========================================
[NOTE]
diff --git a/doc/it/weechat_plugin_api.it.txt b/doc/it/weechat_plugin_api.it.txt
index feaf0ce95..0148f89ca 100644
--- a/doc/it/weechat_plugin_api.it.txt
+++ b/doc/it/weechat_plugin_api.it.txt
@@ -8331,43 +8331,45 @@ Content of hashtable sent to callback (keys and values are of type "string"):
[width="100%",cols="5m,5,8,3",options="header"]
|========================================
-| Key ^(1)^ | Description | Value examples | Value if N/A
-| _x | column on screen 2+| "0" ... "n"
-| _y | line on screen 2+| "0" ... "n"
-| _key | key or mouse event 2+| "button1", "button2-gesture-left", ...
-| _window | pointer to window | "0x12345678" | ""
-| _window_number | number of window | "1" ... "n" | "*"
-| _buffer | pointer to buffer | "0x12345678" | ""
-| _buffer_number | number of buffer | "1" ... "n" | "-1"
-| _buffer_plugin | plugin name of buffer | "core", "irc", ... | ""
-| _buffer_name | name of buffer | "weechat", "freenode.#weechat", ... | ""
-| _chat | chat area indicator | "0" or "1" | "0"
-| _chat_line_x | column in line ^(2)^ | "0" ... "n" | "-1"
-| _chat_line_y | line number ^(2)^ | "0" ... "n" | "-1"
-| _chat_line_date | line date | "1313237175" | "0"
-| _chat_line_date_printed | line date ^(3)^ | "1313237175" | "0"
-| _chat_line_time | time displayed | "14:06:15" | ""
-| _chat_line_tags | tags of line | "irc_privmsg,notify_message,nick_FlashCode,log1" | ""
-| _chat_line_nick | nick of line | "FlashCode" | ""
-| _chat_line_prefix | prefix of line | "@FlashCode" | ""
-| _chat_line_message | message of line | "Hello world!" | ""
-| _chat_word | word at (x,y) | "Hello" | ""
-| _chat_bol | beginning of line ⇒ (x-1,y) | "He" | ""
-| _chat_eol | (x,y) ⇒ end of line | "llo world!" | ""
-| _bar_name | name of bar | "title", "nicklist", ... | ""
-| _bar_filling | filling of bar | "horizontal", "vertical", ... | ""
-| _bar_item_name | name of bar item | "buffer_nicklist", "hotlist", ... | ""
-| _bar_item_line | line in bar item | "0" ... "n" | "-1"
-| _bar_item_col | column in bar item | "0" ... "n" | "-1"
+| Key ^(1)^ | Description | Value examples | Value if N/A
+| _x | column on screen 2+| "0" ... "n"
+| _y | line on screen 2+| "0" ... "n"
+| _key | key or mouse event 2+| "button1", "button2-gesture-left", ...
+| _window | pointer to window | "0x12345678" | ""
+| _window_number | number of window | "1" ... "n" | "*"
+| _buffer | pointer to buffer | "0x12345678" | ""
+| _buffer_number | number of buffer | "1" ... "n" | "-1"
+| _buffer_plugin | plugin name of buffer | "core", "irc", ... | ""
+| _buffer_name | name of buffer | "weechat", "freenode.#weechat", ... | ""
+| _buffer_localvar_XXX ^(2)^ | local variables of buffer | any value | not set
+| _chat | chat area indicator | "0" or "1" | "0"
+| _chat_line_x | column in line ^(3)^ | "0" ... "n" | "-1"
+| _chat_line_y | line number ^(3)^ | "0" ... "n" | "-1"
+| _chat_line_date | line date | "1313237175" | "0"
+| _chat_line_date_printed | line date ^(4)^ | "1313237175" | "0"
+| _chat_line_time | time displayed | "14:06:15" | ""
+| _chat_line_tags | tags of line | "irc_privmsg,notify_message,nick_FlashCode,log1" | ""
+| _chat_line_nick | nick of line | "FlashCode" | ""
+| _chat_line_prefix | prefix of line | "@FlashCode" | ""
+| _chat_line_message | message of line | "Hello world!" | ""
+| _chat_word | word at (x,y) | "Hello" | ""
+| _chat_bol | beginning of line ⇒ (x-1,y) | "He" | ""
+| _chat_eol | (x,y) ⇒ end of line | "llo world!" | ""
+| _bar_name | name of bar | "title", "nicklist", ... | ""
+| _bar_filling | filling of bar | "horizontal", "vertical", ... | ""
+| _bar_item_name | name of bar item | "buffer_nicklist", "hotlist", ... | ""
+| _bar_item_line | line in bar item | "0" ... "n" | "-1"
+| _bar_item_col | column in bar item | "0" ... "n" | "-1"
|========================================
[NOTE]
^(1)^ There are same keys suffixed with "2" (ie: "_x2", "_y2", "_window2", ...)
with info on second point (useful only for mouse gestures, to know where mouse
button has been released). +
-^(2)^ It is set only for buffers with free content. +
-^(3)^ It is date when WeeChat adds line in buffer (greater or equal to
-"chat_line_date").
+^(2)^ `XXX` is name of local variable in buffer. +
+^(3)^ It is set only for buffers with free content. +
+^(4)^ It is date when WeeChat adds line in buffer (greater or equal to
+"_chat_line_date").
Extra info for bar item "buffer_nicklist":
@@ -8378,8 +8380,6 @@ Extra info for bar item "buffer_nicklist":
| prefix | core | prefix for nick
| group | core | group name
| irc_host | irc | host for nick (if known)
-| irc_server | irc | internal name of server
-| irc_channel | irc | channel name
|========================================
[NOTE]
diff --git a/src/gui/gui-focus.c b/src/gui/gui-focus.c
index 82d635b93..a73e4b695 100644
--- a/src/gui/gui-focus.c
+++ b/src/gui/gui-focus.c
@@ -122,6 +122,30 @@ gui_focus_free_info (struct t_gui_focus_info *focus_info)
}
/*
+ * gui_focus_buffer_localvar_map_cb: add local variables of buffer in hashtable
+ */
+
+void
+gui_focus_buffer_localvar_map_cb (void *data, struct t_hashtable *hashtable,
+ const void *key, const void *value)
+{
+ struct t_hashtable *hashtable_focus;
+ char hash_key[512];
+
+ /* make C compiler happy */
+ (void) hashtable;
+
+ hashtable_focus = (struct t_hashtable *)data;
+
+ if (hashtable_focus && key && value)
+ {
+ snprintf (hash_key, sizeof (hash_key),
+ "_buffer_localvar_%s", (const char *)key);
+ hashtable_set (hashtable_focus, hash_key, (const char *)value);
+ }
+}
+
+/*
* gui_focus_to_hashtable: add two focus info into hashtable
*/
@@ -156,6 +180,8 @@ gui_focus_to_hashtable (struct t_gui_focus_info *focus_info, const char *key)
FOCUS_INT("_buffer_number", ((focus_info->window)->buffer)->number);
FOCUS_STR("_buffer_plugin", plugin_get_name (((focus_info->window)->buffer)->plugin));
FOCUS_STR("_buffer_name", ((focus_info->window)->buffer)->name);
+ hashtable_map (focus_info->window->buffer->local_variables,
+ &gui_focus_buffer_localvar_map_cb, hashtable);
}
else
{
diff --git a/src/plugins/irc/irc-bar-item.c b/src/plugins/irc/irc-bar-item.c
index c354dc9d0..99a190cc1 100644
--- a/src/plugins/irc/irc-bar-item.c
+++ b/src/plugins/irc/irc-bar-item.c
@@ -530,11 +530,9 @@ irc_bar_item_focus_buffer_nicklist (void *data,
if (ptr_nick && ptr_nick->host)
{
weechat_hashtable_set (info, "irc_host", ptr_nick->host);
+ return info;
}
}
- weechat_hashtable_set (info, "irc_server", ptr_server->name);
- weechat_hashtable_set (info, "irc_channel", ptr_channel->name);
- return info;
}
return NULL;