1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-07 18:23:13 +02:00

api: add function buffer_new_props (closes #1759)

This commit is contained in:
Sébastien Helleu
2022-03-12 10:39:34 +01:00
parent fbbed9fbf7
commit e5e3a9d2da
30 changed files with 1131 additions and 19 deletions
+1
View File
@@ -33,6 +33,7 @@ Bug fixes::
* core: remove obsolete option weechat.plugin.debug (issue #1744)
* core: fix search of commands with UTF-8 chars in name when option weechat.look.command_incomplete is on (issue #1739)
* core: fix display of hotlist in buflist after changing value of option weechat.look.hotlist_sort (issue #1733)
* api: add function buffer_new_props (issue #1759)
* api: fix add of infolist items in hashtable when prefix contains UTF-8 chars in function hashtable_add_from_infolist (issue #1739)
* guile: remove disabling of guile gmp allocator with Guile ≥ 3.0.8
* irc: fix completion of channel topic with UTF-8 chars (issue #1739)
+1
View File
@@ -698,6 +698,7 @@ Liste der Skript API Funktionen:
| Buffer |
buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
+132
View File
@@ -12579,6 +12579,12 @@ _Updated in 1.5._
Open a new buffer.
[NOTE]
If you want to immediately set buffer properties (buffer type, local variables,
key bindings, etc.), then better use the function <<_buffer_new_props,buffer_new_props>>
which sets these properties during the buffer creation, before sending signal
<<hook_signal_buffer_opened,buffer_opened>>.
Prototype:
[source,c]
@@ -12677,6 +12683,132 @@ def my_close_cb(data, buffer):
buffer = weechat.buffer_new("my_buffer", "my_input_cb", "", "my_close_cb", "")
----
==== buffer_new_props
_WeeChat ≥ 3.5._
Open a new buffer and apply properties.
Prototype:
[source,c]
----
struct t_gui_buffer *weechat_buffer_new_props (const char *name,
struct t_hashtable *properties,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const void *input_callback_pointer,
void *input_callback_data,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const void *close_callback_pointer,
void *close_callback_data);
----
Arguments:
* _name_: name of buffer (must be unique for plugin)
* _properties_: properties to apply
(see function <<_buffer_set,buffer_set>> for the allowed properties)
* _input_callback_: function called when input text is entered on buffer,
arguments and return value:
** _const void *pointer_: pointer
** _void *data_: pointer
** _struct t_gui_buffer *buffer_: buffer pointer
** _const char *input_data_: input data
** return value:
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _input_callback_pointer_: pointer given to callback when it is called by
WeeChat
* _input_callback_data_: pointer given to callback when it is called by
WeeChat; if not NULL, it must have been allocated with malloc (or similar
function) and it is automatically freed when the buffer is closed
* _close_callback_: function called when buffer is closed, arguments and return
value:
** _const void *pointer_: pointer
** _void *data_: pointer
** _struct t_gui_buffer *buffer_: buffer pointer
** return value:
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _close_callback_pointer_: pointer given to callback when it is called by
WeeChat
* _close_callback_data_: pointer given to callback when it is called by
WeeChat; if not NULL, it must have been allocated with malloc (or similar
function) and it is automatically freed when the buffer is closed
Return value:
* pointer to new buffer, NULL if error occurred
C example:
[source,c]
----
int
my_input_cb (const void *pointer, void *data,
struct t_gui_buffer *buffer, const char *input_data)
{
weechat_printf (buffer, "Text: %s", input_data);
return WEECHAT_RC_OK;
}
int
my_close_cb (const void *pointer, void *data, struct t_gui_buffer *buffer)
{
weechat_printf (NULL, "Buffer '%s' will be closed!",
weechat_buffer_get_string (buffer, "name"));
return WEECHAT_RC_OK;
}
struct t_hashtable *properties = weechat_hashtable_new (8,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL,
NULL);
/* buffer with free content */
weechat_hashtable_set (properties, "type", "free");
/* no logging on this buffer */
weechat_hashtable_set (properties, "localvar_set_no_log", "1");
/* bind key alt-c on this buffer */
weechat_hashtable_set (properties, "key_bind_meta-c", "/my_command");
struct t_gui_buffer *my_buffer = weechat_buffer_new_props ("my_buffer",
properties,
&my_input_cb, NULL, NULL,
&my_close_cb, NULL, NULL);
----
Script (Python):
[source,python]
----
# prototype
def buffer_new_props(name: str, properties: Dict[str, str],
input_callback: str, input_callback_data: str,
close_callback: str, close_callback_data: str) -> str: ...
# example
def my_input_cb(data, buffer, input_data):
weechat.prnt(buffer, "Text: %s" % input_data)
return weechat.WEECHAT_RC_OK
def my_close_cb(data, buffer):
weechat.prnt("", "Buffer '%s' will be closed!" % weechat.buffer_get_string(buffer, "name"))
return weechat.WEECHAT_RC_OK
properties = {
"type": "free", # buffer with free content
"localvar_set_no_log": "1", # no logging on this buffer
"key_bind_meta-c": "/my_command", # bind key alt-c on this buffer
}
buffer = weechat.buffer_new_props("my_buffer", properties, "my_input_cb", "", "my_close_cb", "")
----
==== current_buffer
Return pointer to current buffer (buffer displayed by current window).
+1
View File
@@ -681,6 +681,7 @@ List of functions in script API:
| buffers |
buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
+135
View File
@@ -12856,6 +12856,13 @@ _Mis à jour dans la 1.5._
Ouvrir un nouveau tampon.
[NOTE]
Si vous souhaitez définir immédiatement des propriétés du tampon (type de tampon,
variables locales, touches de raccourci, etc.), alors il vaut mieux utiliser
la fonction <<_buffer_new_props,buffer_new_props>> qui définit ces propriétés
durant la création du tampon, avant d'envoyer le signal
<<hook_signal_buffer_opened,buffer_opened>>.
Prototype :
[source,c]
@@ -12956,6 +12963,134 @@ def my_close_cb(data, buffer):
buffer = weechat.buffer_new("mon_buffer", "my_input_cb", "", "my_close_cb", "")
----
==== buffer_new_props
_WeeChat ≥ 3.5._
Ouvrir un nouveau tampon et appliquer des propriétés.
Prototype :
[source,c]
----
struct t_gui_buffer *weechat_buffer_new_props (const char *name,
struct t_hashtable *properties,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const void *input_callback_pointer,
void *input_callback_data,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const void *close_callback_pointer,
void *close_callback_data);
----
Paramètres :
* _name_ : nom du tampon (doit être unique pour l'extension)
* _properties_ : propriétés à appliquer
(voir la fonction <<_buffer_set,buffer_set>> pour les propriétés autorisées)
* _input_callback_ : fonction appelée lorsque du texte saisi est envoyé au
tampon, paramètres et valeur de retour :
** _const void *pointer_ : pointeur
** _void *data_ : pointeur
** _struct t_gui_buffer *buffer_ : pointeur vers le tampon
** _const char *input_data_ : données en entrée
** valeur de retour :
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _input_callback_pointer_ : pointeur donné à la fonction de rappel lorsqu'elle
est appelée par WeeChat
* _input_callback_data_ : pointeur donné à la fonction de rappel lorsqu'elle
est appelée par WeeChat; si non NULL, doit avoir été alloué par malloc (ou
une fonction similaire) et est automatiquement libéré (par free) lorsque le
tampon est fermé
* _close_callback_ : fonction appelée lorsque le tampon est fermé, paramètres et
valeur de retour :
** _const void *pointer_ : pointeur
** _void *data_ : pointeur
** _struct t_gui_buffer *buffer_ : pointeur vers le tampon
** valeur de retour :
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _close_callback_pointer_ : pointeur donné à la fonction de rappel lorsqu'elle
est appelée par WeeChat
* _close_callback_data_ : pointeur donné à la fonction de rappel lorsqu'elle
est appelée par WeeChat; si non NULL, doit avoir été alloué par malloc (ou
une fonction similaire) et est automatiquement libéré (par free) lorsque le
tampon est fermé
Valeur de retour :
* pointeur vers le nouveau tampon, NULL en cas d'erreur
Exemple en C :
[source,c]
----
int
my_input_cb (const void *pointer, void *data,
struct t_gui_buffer *buffer, const char *input_data)
{
weechat_printf (buffer, "Texte : %s", input_data);
return WEECHAT_RC_OK;
}
int
my_close_cb (const void *pointer, void *data, struct t_gui_buffer *buffer)
{
weechat_printf (NULL, "Le tampon '%s' va être fermé !",
weechat_buffer_get_string (buffer, "name"));
return WEECHAT_RC_OK;
}
struct t_hashtable *properties = weechat_hashtable_new (8,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL,
NULL);
/* tampon avec contenu libre */
weechat_hashtable_set (properties, "type", "free");
/* pas d'enregistrement sur ce tampon */
weechat_hashtable_set (properties, "localvar_set_no_log", "1");
/* associer la touche alt-c sur ce tampon */
weechat_hashtable_set (properties, "key_bind_meta-c", "/ma_commande");
struct t_gui_buffer *my_buffer = weechat_buffer_new_props ("mon_buffer",
properties,
&my_input_cb, NULL, NULL,
&my_close_cb, NULL, NULL);
----
Script (Python) :
[source,python]
----
# prototype
def buffer_new_props(name: str, properties: Dict[str, str],
input_callback: str, input_callback_data: str,
close_callback: str, close_callback_data: str) -> str: ...
# exemple
def my_input_cb(data, buffer, input_data):
weechat.prnt(buffer, "Texte : %s" % input_data)
return weechat.WEECHAT_RC_OK
def my_close_cb(data, buffer):
weechat.prnt("", "Le tampon '%s' va être fermé !" % weechat.buffer_get_string(buffer, "name"))
return weechat.WEECHAT_RC_OK
properties = {
"type": "free", # tampon avec contenu libre
"localvar_set_no_log": "1", # pas d'enregistrement sur ce tampon
"key_bind_meta-c": "/ma_commande", # associer la touche alt-c sur ce tampon
}
buffer = weechat.buffer_new_props("mon_buffer", properties, "my_input_cb", "", "my_close_cb", "")
----
==== current_buffer
Retourner un pointeur vers le tampon courant (le tampon affiché par la fenêtre
+1
View File
@@ -701,6 +701,7 @@ Liste des fonctions de l'API script :
| tampons |
buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
+139
View File
@@ -13108,6 +13108,13 @@ _Updated in 1.5._
Apre un nuovo buffer.
// TRANSLATION MISSING
[NOTE]
If you want to immediately set buffer properties (buffer type, local variables,
key bindings, etc.), then better use the function <<_buffer_new_props,buffer_new_props>>
which sets these properties during the buffer creation, before sending signal
<<hook_signal_buffer_opened,buffer_opened>>.
Prototipo:
[source,c]
@@ -13208,6 +13215,138 @@ def my_close_cb(data, buffer):
buffer = weechat.buffer_new("my_buffer", "my_input_cb", "", "my_close_cb", "")
----
==== buffer_new_props
_WeeChat ≥ 3.5._
// TRANSLATION MISSING
Open a new buffer and apply properties.
Prototipo:
[source,c]
----
struct t_gui_buffer *weechat_buffer_new_props (const char *name,
struct t_hashtable *properties,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const void *input_callback_pointer,
void *input_callback_data,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const void *close_callback_pointer,
void *close_callback_data);
----
Argomenti:
* _name_: nome del buffer (deve essere unico per il plugin)
// TRANSLATION MISSING
* _properties_: properties to apply
(see function <<_buffer_set,buffer_set>> for the allowed properties)
* _input_callback_: funzione chiamata quando il testo in input è stato
inserito nel buffer, argomenti e valore restituito:
** _const void *pointer_: puntatore
** _void *data_: puntatore
** _struct t_gui_buffer *buffer_: puntatore al buffer
** _const char *input_data_: dati in input
** valore restituito:
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _input_callback_pointer_: puntatore fornito alla callback quando chiamata da
WeeChat
// TRANSLATION MISSING
* _input_callback_data_: puntatore fornito dalla callback quando chiamata da
WeeChat; if not NULL, it must have been allocated with malloc (or similar
function) and it is automatically freed when the buffer is closed
* _close_callback_: funzione chiamata alla chiusura del buffer, argomenti e
valore restituito:
** _const void *pointer_: puntatore
** _void *data_: puntatore
** _struct t_gui_buffer *buffer_: puntatore al buffer
** valore restituito:
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _close_callback_pointer_: puntatore fornito alla callback quando chiamata da
WeeChat
// TRANSLATION MISSING
* _close_callback_data_: puntatore fornito dalla callback quando chiamata da
WeeChat; if not NULL, it must have been allocated with malloc (or similar
function) and it is automatically freed when the buffer is closed
Valore restituito:
* puntatore al nuovo buffer, NULL in caso di errore
Esempio in C:
// TRANSLATION MISSING
[source,c]
----
int
my_input_cb (const void *pointer, void *data,
struct t_gui_buffer *buffer, const char *input_data)
{
weechat_printf (buffer, "Testo: %s", input_data);
return WEECHAT_RC_OK;
}
int
my_close_cb (const void *pointer, void *data, struct t_gui_buffer *buffer)
{
weechat_printf (NULL, "Il buffer '%s' verrà chiuso!",
weechat_buffer_get_string (buffer, "name"));
return WEECHAT_RC_OK;
}
struct t_hashtable *properties = weechat_hashtable_new (8,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL,
NULL);
/* buffer with free content */
weechat_hashtable_set (properties, "type", "free");
/* no logging on this buffer */
weechat_hashtable_set (properties, "localvar_set_no_log", "1");
/* bind key alt-c on this buffer */
weechat_hashtable_set (properties, "key_bind_meta-c", "/my_command");
struct t_gui_buffer *my_buffer = weechat_buffer_new_props ("my_buffer",
properties,
&my_input_cb, NULL, NULL,
&my_close_cb, NULL, NULL);
----
Script (Python):
// TRANSLATION MISSING
[source,python]
----
# prototipo
def buffer_new_props(name: str, properties: Dict[str, str],
input_callback: str, input_callback_data: str,
close_callback: str, close_callback_data: str) -> str: ...
# esempio
def my_input_cb(data, buffer, input_data):
weechat.prnt(buffer, "Testo: %s" % input_data)
return weechat.WEECHAT_RC_OK
def my_close_cb(data, buffer):
weechat.prnt("", "Il buffer '%s' verrà chiuso!" % weechat.buffer_get_string(buffer, "name"))
return weechat.WEECHAT_RC_OK
properties = {
"type": "free", # buffer with free content
"localvar_set_no_log": "1", # no logging on this buffer
"key_bind_meta-c": "/my_command", # bind key alt-c on this buffer
}
buffer = weechat.buffer_new_props("my_buffer", properties, "my_input_cb", "", "my_close_cb", "")
----
==== current_buffer
Restituisce il puntatore al buffer corrente (buffer visualizzato nella
+1
View File
@@ -714,6 +714,7 @@ Elenco di funzioni nelle API per gli script:
| buffer |
buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
+136
View File
@@ -12638,6 +12638,13 @@ _WeeChat バージョン 1.5 で更新。_
新しいバッファを開く。
// TRANSLATION MISSING
[NOTE]
If you want to immediately set buffer properties (buffer type, local variables,
key bindings, etc.), then better use the function <<_buffer_new_props,buffer_new_props>>
which sets these properties during the buffer creation, before sending signal
<<hook_signal_buffer_opened,buffer_opened>>.
プロトタイプ:
[source,c]
@@ -12735,6 +12742,135 @@ def my_close_cb(data, buffer):
buffer = weechat.buffer_new("my_buffer", "my_input_cb", "", "my_close_cb", "")
----
==== buffer_new_props
_WeeChat ≥ 3.5_
// TRANSLATION MISSING
Open a new buffer and apply properties.
プロトタイプ:
[source,c]
----
struct t_gui_buffer *weechat_buffer_new_props (const char *name,
struct t_hashtable *properties,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const void *input_callback_pointer,
void *input_callback_data,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const void *close_callback_pointer,
void *close_callback_data);
----
引数:
* _name_: バッファの名前 (プラグインに対して固有)
// TRANSLATION MISSING
* _properties_: properties to apply
(see function <<_buffer_set,buffer_set>> for the allowed properties)
* _input_callback_:
入力テキストをバッファに挿入する際に呼び出すコールバック関数、引数と戻り値:
** _const void *pointer_: ポインタ
** _void *data_: ポインタ
** _struct t_gui_buffer *buffer_: バッファポインタ
** _const char *input_data_: 入力データ
** 戻り値:
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _input_callback_pointer_: WeeChat が _input_callback_ コールバックを呼び出す際にコールバックに渡すポインタ
* _input_callback_data_: WeeChat が _input_callback_ コールバックを呼び出す際にコールバックに渡すポインタ;
このポインタが NULL でない場合、このポインタは malloc (または類似の関数)
によって割り当てられたものでなければいけません。さらに、このポインタはここで作成したバッファが閉じられた時点で自動的に開放されます
* _close_callback_:
バッファを閉じる際に呼び出すコールバック関数、引数と戻り値:
** _const void *pointer_: ポインタ
** _void *data_: ポインタ
** _struct t_gui_buffer *buffer_: バッファポインタ
** 戻り値:
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _close_callback_pointer_: WeeChat が _close_callback_
コールバックを呼び出す際にコールバックに渡すポインタ
* _close_callback_data_: WeeChat が _close_callback_ コールバックを呼び出す際にコールバックに渡すポインタ;
このポインタが NULL でない場合、このポインタは malloc (または類似の関数)
によって割り当てられたものでなければいけません。さらに、このポインタはここで作成したバッファが閉じられた時点で自動的に開放されます
戻り値:
* 新しいバッファへのポインタ、エラーが起きた場合は NULL
C 言語での使用例:
// TRANSLATION MISSING
[source,c]
----
int
my_input_cb (const void *pointer, void *data,
struct t_gui_buffer *buffer, const char *input_data)
{
weechat_printf (buffer, "Text: %s", input_data);
return WEECHAT_RC_OK;
}
int
my_close_cb (const void *pointer, void *data, struct t_gui_buffer *buffer)
{
weechat_printf (NULL, "Buffer _%s_ will be closed!",
weechat_buffer_get_string (buffer, "name"));
return WEECHAT_RC_OK;
}
struct t_hashtable *properties = weechat_hashtable_new (8,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL,
NULL);
/* buffer with free content */
weechat_hashtable_set (properties, "type", "free");
/* no logging on this buffer */
weechat_hashtable_set (properties, "localvar_set_no_log", "1");
/* bind key alt-c on this buffer */
weechat_hashtable_set (properties, "key_bind_meta-c", "/my_command");
struct t_gui_buffer *my_buffer = weechat_buffer_new_props ("my_buffer",
properties,
&my_input_cb, NULL, NULL,
&my_close_cb, NULL, NULL);
----
スクリプト (Python) での使用例:
// TRANSLATION MISSING
[source,python]
----
# プロトタイプ
def buffer_new_props(name: str, properties: Dict[str, str],
input_callback: str, input_callback_data: str,
close_callback: str, close_callback_data: str) -> str: ...
# 例
def my_input_cb(data, buffer, input_data):
weechat.prnt(buffer, "Text: %s" % input_data)
return weechat.WEECHAT_RC_OK
def my_close_cb(data, buffer):
weechat.prnt("", "Buffer _%s_ will be closed!" % weechat.buffer_get_string(buffer, "name"))
return weechat.WEECHAT_RC_OK
properties = {
"type": "free", # buffer with free content
"localvar_set_no_log": "1", # no logging on this buffer
"key_bind_meta-c": "/my_command", # bind key alt-c on this buffer
}
buffer = weechat.buffer_new_props("my_buffer", properties, "my_input_cb", "", "my_close_cb", "")
----
==== current_buffer
現在のバッファへのポインタを返す (現在のウィンドウに表示されているバッファ)。
+1
View File
@@ -703,6 +703,7 @@ link:weechat_plugin_api.ja.html[WeeChat プラグイン API リファレンス]
| バッファ |
buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
+1
View File
@@ -687,6 +687,7 @@ Lista funkcji w API skryptów:
| bufory |
buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
+129
View File
@@ -12124,6 +12124,13 @@ _Ажурирано у верзији 1.5._
Отвара нови бафер.
// TRANSLATION MISSING
[NOTE]
If you want to immediately set buffer properties (buffer type, local variables,
key bindings, etc.), then better use the function <<_buffer_new_props,buffer_new_props>>
which sets these properties during the buffer creation, before sending signal
<<hook_signal_buffer_opened,buffer_opened>>.
Прототип:
[source,c]
@@ -12214,6 +12221,128 @@ def my_close_cb(data, buffer):
buffer = weechat.buffer_new("my_buffer", "my_input_cb", "", "my_close_cb", "")
----
==== buffer_new_props
_WeeChat ≥ 3.5._
// TRANSLATION MISSING
Open a new buffer and apply properties.
Прототип:
[source,c]
----
struct t_gui_buffer *weechat_buffer_new_props (const char *name,
struct t_hashtable *properties,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const void *input_callback_pointer,
void *input_callback_data,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const void *close_callback_pointer,
void *close_callback_data);
----
Аргументи:
* _name_: име бафера (мора бити јединствено за додатак)
// TRANSLATION MISSING
* _properties_: properties to apply
(see function <<_buffer_set,buffer_set>> for the allowed properties)
* _input_callback_: функција која се позива када се унесе текст уноса за бафер, аргументи и повратна вредност су:
** _const void *pointer_: показивач
** _void *data_: показивач
** _struct t_gui_buffer *buffer_: показивач на бафер
** _const char *input_data_: подаци уноса
** повратна вредност:
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _input_callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
* _input_callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се бафер затвори
* _close_callback_: функција која се позива када се затвори бафер, аргументи и повратна вредност су:
** _const void *pointer_: показивач
** _void *data_: показивач
** _struct t_gui_buffer *buffer_: показивач на бафер
** повратна вредност:
*** _WEECHAT_RC_OK_
*** _WEECHAT_RC_ERROR_
* _close_callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat
* _close_callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се затвори бафер
Повратна вредност:
* показивач на нови бафер, NULL у случају грешке
C пример:
// TRANSLATION MISSING
[source,c]
----
int
my_input_cb (const void *pointer, void *data,
struct t_gui_buffer *buffer, const char *input_data)
{
weechat_printf (buffer, "Текст: %s", input_data);
return WEECHAT_RC_OK;
}
int
my_close_cb (const void *pointer, void *data, struct t_gui_buffer *buffer)
{
weechat_printf (NULL, "Затвориће се бафер ’%s’!",
weechat_buffer_get_string (buffer, "name"));
return WEECHAT_RC_OK;
}
struct t_hashtable *properties = weechat_hashtable_new (8,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL,
NULL);
/* buffer with free content */
weechat_hashtable_set (properties, "type", "free");
/* no logging on this buffer */
weechat_hashtable_set (properties, "localvar_set_no_log", "1");
/* bind key alt-c on this buffer */
weechat_hashtable_set (properties, "key_bind_meta-c", "/my_command");
struct t_gui_buffer *my_buffer = weechat_buffer_new_props ("my_buffer",
properties,
&my_input_cb, NULL, NULL,
&my_close_cb, NULL, NULL);
----
Скрипта (Python):
// TRANSLATION MISSING
[source,python]
----
# прототип
def buffer_new_props(name: str, properties: Dict[str, str],
input_callback: str, input_callback_data: str,
close_callback: str, close_callback_data: str) -> str: ...
# пример
def my_input_cb(data, buffer, input_data):
weechat.prnt(buffer, "Текст: %s" % input_data)
return weechat.WEECHAT_RC_OK
def my_close_cb(data, buffer):
weechat.prnt("", "Затвориће се бафер ’%s!" % weechat.buffer_get_string(buffer, "name"))
return weechat.WEECHAT_RC_OK
properties = {
"type": "free", # buffer with free content
"localvar_set_no_log": "1", # no logging on this buffer
"key_bind_meta-c": "/my_command", # bind key alt-c on this buffer
}
buffer = weechat.buffer_new_props("my_buffer", properties, "my_input_cb", "", "my_close_cb", "")
----
==== current_buffer
Враћа показивач на текући бафер (бафер који се приказује у текућем прозору).
+1
View File
@@ -640,6 +640,7 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
| бафери |
buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
+40
View File
@@ -3346,6 +3346,45 @@ weechat_guile_api_buffer_new (SCM name, SCM function_input, SCM data_input,
API_RETURN_STRING(result);
}
SCM
weechat_guile_api_buffer_new_props (SCM name, SCM properties,
SCM function_input, SCM data_input,
SCM function_close, SCM data_close)
{
struct t_hashtable *c_properties;
const char *result;
SCM return_value;
API_INIT_FUNC(1, "buffer_new_props", API_RETURN_EMPTY);
if (!scm_is_string (name) || !scm_list_p (properties)
|| !scm_is_string (function_input) || !scm_is_string (data_input)
|| !scm_is_string (function_close) || !scm_is_string (data_close))
API_WRONG_ARGS(API_RETURN_EMPTY);
c_properties = weechat_guile_alist_to_hashtable (properties,
WEECHAT_SCRIPT_HASHTABLE_DEFAULT_SIZE,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING);
result = API_PTR2STR(
plugin_script_api_buffer_new_props (
weechat_guile_plugin,
guile_current_script,
API_SCM_TO_STRING(name),
c_properties,
&weechat_guile_api_buffer_input_data_cb,
API_SCM_TO_STRING(function_input),
API_SCM_TO_STRING(data_input),
&weechat_guile_api_buffer_close_cb,
API_SCM_TO_STRING(function_close),
API_SCM_TO_STRING(data_close)));
if (c_properties)
weechat_hashtable_free (c_properties);
API_RETURN_STRING(result);
}
SCM
weechat_guile_api_buffer_search (SCM plugin, SCM name)
{
@@ -5175,6 +5214,7 @@ weechat_guile_api_module_init (void *data)
API_DEF_FUNC(unhook, 1);
API_DEF_FUNC(unhook_all, 0);
API_DEF_FUNC(buffer_new, 5);
API_DEF_FUNC(buffer_new_props, 6);
API_DEF_FUNC(buffer_search, 2);
API_DEF_FUNC(buffer_search_main, 0);
API_DEF_FUNC(current_buffer, 0);
+38
View File
@@ -3270,6 +3270,43 @@ API_FUNC(buffer_new)
API_RETURN_STRING(result);
}
API_FUNC(buffer_new_props)
{
struct t_hashtable *properties;
const char *result;
API_INIT_FUNC(1, "buffer_new_props", "shssss", API_RETURN_EMPTY);
v8::String::Utf8Value name(args[0]);
properties = weechat_js_object_to_hashtable (
args[1]->ToObject(),
WEECHAT_SCRIPT_HASHTABLE_DEFAULT_SIZE,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING);
v8::String::Utf8Value function_input(args[2]);
v8::String::Utf8Value data_input(args[3]);
v8::String::Utf8Value function_close(args[4]);
v8::String::Utf8Value data_close(args[5]);
result = API_PTR2STR(
plugin_script_api_buffer_new_props (
weechat_js_plugin,
js_current_script,
*name,
properties,
&weechat_js_api_buffer_input_data_cb,
*function_input,
*data_input,
&weechat_js_api_buffer_close_cb,
*function_close,
*data_close));
if (properties)
weechat_hashtable_free (properties);
API_RETURN_STRING(result);
}
API_FUNC(buffer_search)
{
const char *result;
@@ -5117,6 +5154,7 @@ WeechatJsV8::loadLibs()
API_DEF_FUNC(unhook);
API_DEF_FUNC(unhook_all);
API_DEF_FUNC(buffer_new);
API_DEF_FUNC(buffer_new_props);
API_DEF_FUNC(buffer_search);
API_DEF_FUNC(buffer_search_main);
API_DEF_FUNC(current_buffer);
+41
View File
@@ -3505,6 +3505,46 @@ API_FUNC(buffer_new)
API_RETURN_STRING(result);
}
API_FUNC(buffer_new_props)
{
const char *name, *function_input, *data_input, *function_close;
const char *data_close;
struct t_hashtable *properties;
const char *result;
API_INIT_FUNC(1, "buffer_new_props", API_RETURN_EMPTY);
if (lua_gettop (L) < 6)
API_WRONG_ARGS(API_RETURN_EMPTY);
name = lua_tostring (L, -6);
properties = weechat_lua_tohashtable (L, -5,
WEECHAT_SCRIPT_HASHTABLE_DEFAULT_SIZE,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING);
function_input = lua_tostring (L, -4);
data_input = lua_tostring (L, -3);
function_close = lua_tostring (L, -2);
data_close = lua_tostring (L, -1);
result = API_PTR2STR(
plugin_script_api_buffer_new_props (
weechat_lua_plugin,
lua_current_script,
name,
properties,
&weechat_lua_api_buffer_input_data_cb,
function_input,
data_input,
&weechat_lua_api_buffer_close_cb,
function_close,
data_close));
if (properties)
weechat_hashtable_free (properties);
API_RETURN_STRING(result);
}
API_FUNC(buffer_search)
{
const char *plugin, *name;
@@ -5470,6 +5510,7 @@ const struct luaL_Reg weechat_lua_api_funcs[] = {
API_DEF_FUNC(unhook),
API_DEF_FUNC(unhook_all),
API_DEF_FUNC(buffer_new),
API_DEF_FUNC(buffer_new_props),
API_DEF_FUNC(buffer_search),
API_DEF_FUNC(buffer_search_main),
API_DEF_FUNC(current_buffer),
+41
View File
@@ -3412,6 +3412,46 @@ API_FUNC(buffer_new)
API_RETURN_STRING(result);
}
API_FUNC(buffer_new_props)
{
char *name, *function_input, *data_input, *function_close, *data_close;
struct t_hashtable *properties;
const char *result;
dXSARGS;
API_INIT_FUNC(1, "buffer_new_props", API_RETURN_EMPTY);
if (items < 6)
API_WRONG_ARGS(API_RETURN_EMPTY);
name = SvPV_nolen (ST (0));
properties = weechat_perl_hash_to_hashtable (ST (1),
WEECHAT_SCRIPT_HASHTABLE_DEFAULT_SIZE,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING);
function_input = SvPV_nolen (ST (2));
data_input = SvPV_nolen (ST (3));
function_close = SvPV_nolen (ST (4));
data_close = SvPV_nolen (ST (5));
result = API_PTR2STR(
plugin_script_api_buffer_new_props (
weechat_perl_plugin,
perl_current_script,
name,
properties,
&weechat_perl_api_buffer_input_data_cb,
function_input,
data_input,
&weechat_perl_api_buffer_close_cb,
function_close,
data_close));
if (properties)
weechat_hashtable_free (properties);
API_RETURN_STRING(result);
}
API_FUNC(buffer_search)
{
char *plugin, *name;
@@ -5423,6 +5463,7 @@ weechat_perl_api_init (pTHX)
API_DEF_FUNC(unhook);
API_DEF_FUNC(unhook_all);
API_DEF_FUNC(buffer_new);
API_DEF_FUNC(buffer_new_props);
API_DEF_FUNC(buffer_search);
API_DEF_FUNC(buffer_search_main);
API_DEF_FUNC(current_buffer);
+44
View File
@@ -3332,6 +3332,50 @@ API_FUNC(buffer_new)
API_RETURN_STRING(result);
}
API_FUNC(buffer_new_props)
{
zend_string *z_name, *z_data_input, *z_data_close;
zval *z_properties, *z_input_callback, *z_close_callback;
char *name, *data_input, *data_close;
struct t_hashtable *properties;
const char *result;
API_INIT_FUNC(1, "buffer_new_props", API_RETURN_EMPTY);
if (zend_parse_parameters (ZEND_NUM_ARGS(), "SazSzS", &z_name,
&z_properties, &z_input_callback, &z_data_input,
&z_close_callback, &z_data_close) == FAILURE)
API_WRONG_ARGS(API_RETURN_EMPTY);
name = ZSTR_VAL(z_name);
properties = weechat_php_array_to_hashtable (
z_properties,
WEECHAT_SCRIPT_HASHTABLE_DEFAULT_SIZE,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING);
weechat_php_get_function_name (z_input_callback, input_callback_name);
data_input = ZSTR_VAL(z_data_input);
weechat_php_get_function_name (z_close_callback, close_callback_name);
data_close = ZSTR_VAL(z_data_close);
result = API_PTR2STR(
plugin_script_api_buffer_new_props (
weechat_php_plugin,
php_current_script,
(const char *)name,
properties,
&weechat_php_api_buffer_input_data_cb,
(const char *)input_callback_name,
(const char *)data_input,
&weechat_php_api_buffer_close_cb,
(const char *)close_callback_name,
(const char *)data_close));
if (properties)
weechat_hashtable_free (properties);
API_RETURN_STRING(result);
}
API_FUNC(buffer_search)
{
zend_string *z_plugin, *z_name;
+1
View File
@@ -155,6 +155,7 @@ PHP_FUNCTION(weechat_hook_set);
PHP_FUNCTION(weechat_unhook);
PHP_FUNCTION(weechat_unhook_all);
PHP_FUNCTION(weechat_buffer_new);
PHP_FUNCTION(weechat_buffer_new_props);
PHP_FUNCTION(weechat_buffer_search);
PHP_FUNCTION(weechat_buffer_search_main);
PHP_FUNCTION(weechat_current_buffer);
+1
View File
@@ -213,6 +213,7 @@ const zend_function_entry weechat_functions[] = {
PHP_FE(weechat_unhook, arginfo_weechat_unhook)
PHP_FE(weechat_unhook_all, arginfo_weechat_unhook_all)
PHP_FE(weechat_buffer_new, arginfo_weechat_buffer_new)
PHP_FE(weechat_buffer_new_props, arginfo_weechat_buffer_new_props)
PHP_FE(weechat_buffer_search, arginfo_weechat_buffer_search)
PHP_FE(weechat_buffer_search_main, arginfo_weechat_buffer_search_main)
PHP_FE(weechat_current_buffer, arginfo_weechat_current_buffer)
+1
View File
@@ -116,6 +116,7 @@ function weechat_hook_set(): mixed {}
function weechat_unhook(): mixed {}
function weechat_unhook_all(): mixed {}
function weechat_buffer_new(): mixed {}
function weechat_buffer_new_props(): mixed {}
function weechat_buffer_search(): mixed {}
function weechat_buffer_search_main(): mixed {}
function weechat_current_buffer(): mixed {}
+2
View File
@@ -222,6 +222,8 @@ ZEND_END_ARG_INFO()
#define arginfo_weechat_buffer_new arginfo_weechat_register
#define arginfo_weechat_buffer_new_props arginfo_weechat_register
#define arginfo_weechat_buffer_search arginfo_weechat_register
#define arginfo_weechat_buffer_search_main arginfo_weechat_register
@@ -222,6 +222,8 @@ ZEND_END_ARG_INFO()
#define arginfo_weechat_buffer_new arginfo_weechat_register
#define arginfo_weechat_buffer_new_props arginfo_weechat_register
#define arginfo_weechat_buffer_search arginfo_weechat_register
#define arginfo_weechat_buffer_search_main arginfo_weechat_register
+51 -16
View File
@@ -1192,24 +1192,25 @@ plugin_script_api_hook_focus (struct t_weechat_plugin *weechat_plugin,
}
/*
* Creates a new buffer.
* Creates a new buffer with optional properties.
*/
struct t_gui_buffer *
plugin_script_api_buffer_new (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
const char *name,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const char *function_input,
const char *data_input,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const char *function_close,
const char *data_close)
plugin_script_api_buffer_new_props (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
const char *name,
struct t_hashtable *properties,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const char *function_input,
const char *data_input,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const char *function_close,
const char *data_close)
{
char *function_and_data_input, *function_and_data_close;
struct t_gui_buffer *new_buffer;
@@ -1222,8 +1223,9 @@ plugin_script_api_buffer_new (struct t_weechat_plugin *weechat_plugin,
function_and_data_close = plugin_script_build_function_and_data (
function_close, data_close);
new_buffer = weechat_buffer_new (
new_buffer = weechat_buffer_new_props (
name,
properties,
(function_and_data_input) ? input_callback : NULL,
script,
function_and_data_input,
@@ -1256,6 +1258,39 @@ plugin_script_api_buffer_new (struct t_weechat_plugin *weechat_plugin,
return new_buffer;
}
/*
* Creates a new buffer.
*/
struct t_gui_buffer *
plugin_script_api_buffer_new (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
const char *name,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const char *function_input,
const char *data_input,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const char *function_close,
const char *data_close)
{
return plugin_script_api_buffer_new_props (
weechat_plugin,
script,
name,
NULL, /* properties */
input_callback,
function_input,
data_input,
close_callback,
function_close,
data_close);
}
/*
* Adds a new bar item.
*
+15
View File
@@ -334,6 +334,21 @@ extern struct t_hook *plugin_script_api_hook_focus (struct t_weechat_plugin *wee
struct t_hashtable *info),
const char *function,
const char *data);
extern struct t_gui_buffer *plugin_script_api_buffer_new_props (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
const char *name,
struct t_hashtable *properties,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const char *function_input,
const char *data_input,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const char *function_close,
const char *data_close);
extern struct t_gui_buffer *plugin_script_api_buffer_new (struct t_weechat_plugin *weechat_plugin,
struct t_plugin_script *script,
const char *name,
+1
View File
@@ -804,6 +804,7 @@ plugin_load (const char *filename, int init_plugin, int argc, char **argv)
new_plugin->unhook_all = &unhook_all_plugin;
new_plugin->buffer_new = &gui_buffer_new;
new_plugin->buffer_new_props = &gui_buffer_new_props;
new_plugin->buffer_search = &gui_buffer_search_by_name;
new_plugin->buffer_search_main = &gui_buffer_search_main;
new_plugin->buffer_clear = &gui_buffer_clear;
+43
View File
@@ -3413,6 +3413,48 @@ API_FUNC(buffer_new)
API_RETURN_STRING(result);
}
API_FUNC(buffer_new_props)
{
char *name, *function_input, *data_input, *function_close, *data_close;
struct t_hashtable *properties;
PyObject *dict;
const char *result;
API_INIT_FUNC(1, "buffer_new_props", API_RETURN_EMPTY);
name = NULL;
dict = NULL;
function_input = NULL;
data_input = NULL;
function_close = NULL;
data_close = NULL;
if (!PyArg_ParseTuple (args, "sOssss", &name, &dict,
&function_input, &data_input,
&function_close, &data_close))
API_WRONG_ARGS(API_RETURN_EMPTY);
properties = weechat_python_dict_to_hashtable (dict,
WEECHAT_SCRIPT_HASHTABLE_DEFAULT_SIZE,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING);
result = API_PTR2STR(
plugin_script_api_buffer_new_props (
weechat_python_plugin,
python_current_script,
name,
properties,
&weechat_python_api_buffer_input_data_cb,
function_input,
data_input,
&weechat_python_api_buffer_close_cb,
function_close,
data_close));
if (properties)
weechat_hashtable_free (properties);
API_RETURN_STRING(result);
}
API_FUNC(buffer_search)
{
char *plugin, *name;
@@ -5333,6 +5375,7 @@ PyMethodDef weechat_python_funcs[] =
API_DEF_FUNC(unhook),
API_DEF_FUNC(unhook_all),
API_DEF_FUNC(buffer_new),
API_DEF_FUNC(buffer_new_props),
API_DEF_FUNC(buffer_search),
API_DEF_FUNC(buffer_search_main),
API_DEF_FUNC(current_buffer),
+53
View File
@@ -4101,6 +4101,58 @@ weechat_ruby_api_buffer_new (VALUE class, VALUE name, VALUE function_input,
API_RETURN_STRING(result);
}
static VALUE
weechat_ruby_api_buffer_new_props (VALUE class, VALUE name, VALUE properties,
VALUE function_input,
VALUE data_input, VALUE function_close,
VALUE data_close)
{
char *c_name, *c_function_input, *c_data_input, *c_function_close;
char *c_data_close;
struct t_hashtable *c_properties;
const char *result;
API_INIT_FUNC(1, "buffer_new_props", API_RETURN_EMPTY);
if (NIL_P (name) || NIL_P (properties) || NIL_P (function_input)
|| NIL_P (data_input) || NIL_P (function_close) || NIL_P (data_close))
API_WRONG_ARGS(API_RETURN_EMPTY);
Check_Type (name, T_STRING);
Check_Type (properties, T_HASH);
Check_Type (function_input, T_STRING);
Check_Type (data_input, T_STRING);
Check_Type (function_close, T_STRING);
Check_Type (data_close, T_STRING);
c_name = StringValuePtr (name);
c_properties = weechat_ruby_hash_to_hashtable (properties,
WEECHAT_SCRIPT_HASHTABLE_DEFAULT_SIZE,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING);
c_function_input = StringValuePtr (function_input);
c_data_input = StringValuePtr (data_input);
c_function_close = StringValuePtr (function_close);
c_data_close = StringValuePtr (data_close);
result = API_PTR2STR(
plugin_script_api_buffer_new_props (
weechat_ruby_plugin,
ruby_current_script,
c_name,
c_properties,
&weechat_ruby_api_buffer_input_data_cb,
c_function_input,
c_data_input,
&weechat_ruby_api_buffer_close_cb,
c_function_close,
c_data_close));
if (c_properties)
weechat_hashtable_free (c_properties);
API_RETURN_STRING(result);
}
static VALUE
weechat_ruby_api_buffer_search (VALUE class, VALUE plugin, VALUE name)
{
@@ -6606,6 +6658,7 @@ weechat_ruby_api_init (VALUE ruby_mWeechat)
API_DEF_FUNC(unhook, 1);
API_DEF_FUNC(unhook_all, 0);
API_DEF_FUNC(buffer_new, 5);
API_DEF_FUNC(buffer_new_props, 6);
API_DEF_FUNC(buffer_search, 2);
API_DEF_FUNC(buffer_search_main, 0);
API_DEF_FUNC(current_buffer, 0);
+42
View File
@@ -3738,6 +3738,47 @@ API_FUNC(buffer_new)
API_RETURN_STRING(result);
}
API_FUNC(buffer_new_props)
{
Tcl_Obj *objp;
char *name, *function_input, *data_input, *function_close, *data_close;
struct t_hashtable *properties;
const char *result;
int i;
API_INIT_FUNC(1, "buffer_new_props", API_RETURN_EMPTY);
if (objc < 7)
API_WRONG_ARGS(API_RETURN_EMPTY);
name = Tcl_GetStringFromObj (objv[1], &i);
properties = weechat_tcl_dict_to_hashtable (interp, objv[2],
WEECHAT_SCRIPT_HASHTABLE_DEFAULT_SIZE,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING);
function_input = Tcl_GetStringFromObj (objv[3], &i);
data_input = Tcl_GetStringFromObj (objv[4], &i);
function_close = Tcl_GetStringFromObj (objv[5], &i);
data_close = Tcl_GetStringFromObj (objv[6], &i);
result = API_PTR2STR(
plugin_script_api_buffer_new_props (
weechat_tcl_plugin,
tcl_current_script,
name,
properties,
&weechat_tcl_api_buffer_input_data_cb,
function_input,
data_input,
&weechat_tcl_api_buffer_close_cb,
function_close,
data_close));
if (properties)
weechat_hashtable_free (properties);
API_RETURN_STRING(result);
}
API_FUNC(buffer_search)
{
Tcl_Obj *objp;
@@ -5918,6 +5959,7 @@ void weechat_tcl_api_init (Tcl_Interp *interp)
API_DEF_FUNC(unhook);
API_DEF_FUNC(unhook_all);
API_DEF_FUNC(buffer_new);
API_DEF_FUNC(buffer_new_props);
API_DEF_FUNC(buffer_search);
API_DEF_FUNC(buffer_search_main);
API_DEF_FUNC(current_buffer);
+36 -3
View File
@@ -68,7 +68,7 @@ struct timeval;
* please change the date with current one; for a second change at same
* date, increment the 01, otherwise please keep 01.
*/
#define WEECHAT_PLUGIN_API_VERSION "20220130-01"
#define WEECHAT_PLUGIN_API_VERSION "20220312-01"
/* macros for defining plugin infos */
#define WEECHAT_PLUGIN_NAME(__name) \
@@ -893,6 +893,20 @@ struct t_weechat_plugin
struct t_gui_buffer *buffer),
const void *close_callback_pointer,
void *close_callback_data);
struct t_gui_buffer *(*buffer_new_props) (struct t_weechat_plugin *plugin,
const char *name,
struct t_hashtable *properties,
int (*input_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer,
const char *input_data),
const void *input_callback_pointer,
void *input_callback_data,
int (*close_callback)(const void *pointer,
void *data,
struct t_gui_buffer *buffer),
const void *close_callback_pointer,
void *close_callback_data);
struct t_gui_buffer *(*buffer_search) (const char *plugin, const char *name);
struct t_gui_buffer *(*buffer_search_main) ();
void (*buffer_clear) (struct t_gui_buffer *buffer);
@@ -1835,19 +1849,38 @@ extern int weechat_plugin_end (struct t_weechat_plugin *plugin);
(weechat_plugin->unhook_all)(weechat_plugin, __subplugin)
/* buffers */
#define weechat_buffer_new(__name, __input_callback, \
#define weechat_buffer_new(__name, \
__input_callback, \
__input_callback_pointer, \
__input_callback_data, \
__close_callback, \
__close_callback_pointer, \
__close_callback_data) \
(weechat_plugin->buffer_new)(weechat_plugin, __name, \
(weechat_plugin->buffer_new)(weechat_plugin, \
__name, \
__input_callback, \
__input_callback_pointer, \
__input_callback_data, \
__close_callback, \
__close_callback_pointer, \
__close_callback_data)
#define weechat_buffer_new_props(__name, \
__properties, \
__input_callback, \
__input_callback_pointer, \
__input_callback_data, \
__close_callback, \
__close_callback_pointer, \
__close_callback_data) \
(weechat_plugin->buffer_new_props)(weechat_plugin, \
__name, \
__properties, \
__input_callback, \
__input_callback_pointer, \
__input_callback_data, \
__close_callback, \
__close_callback_pointer, \
__close_callback_data)
#define weechat_buffer_search(__plugin, __name) \
(weechat_plugin->buffer_search)(__plugin, __name)
#define weechat_buffer_search_main() \