1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-26 12:56:37 +02:00

api: allow return code WEECHAT_RC_OK_EAT in callbacks of hook_signal and hook_hsignal (stop sending the signal immediately)

This commit is contained in:
Sebastien Helleu
2013-01-06 19:38:38 +01:00
parent faccb87a10
commit bd21daebd1
5 changed files with 26 additions and 2 deletions
+2
View File
@@ -51,6 +51,8 @@ Version 0.4.0 (under dev!)
(problem with nick displayed in first line of screen) (bug #37556)
* core: fix wrapping of words with wide chars (the break was made before the
correct position)
* api: allow return code WEECHAT_RC_OK_EAT in callbacks of hook_signal and
hook_hsignal (stop sending the signal immediately)
* api: allow creation of structure with hdata_update (allowed for hdata
"history")
* api: use hashtable "options" for command arguments in function
+4
View File
@@ -7994,6 +7994,8 @@ Arguments:
** 'void *signal_data': data sent with signal
** return value:
*** 'WEECHAT_RC_OK'
*** 'WEECHAT_RC_OK_EAT' (stop sending the signal immediately)
(_new in version 0.4.0_)
*** 'WEECHAT_RC_ERROR'
* 'callback_data': pointer given to callback when it is called by WeeChat
@@ -8262,6 +8264,8 @@ pattern.
** 'struct t_hashtable *hashtable': hashtable
** return value:
*** 'WEECHAT_RC_OK'
*** 'WEECHAT_RC_OK_EAT' (stop sending the signal immediately)
(_new in version 0.4.0_)
*** 'WEECHAT_RC_ERROR'
* 'callback_data': pointer given to callback when it is called by WeeChat
+4
View File
@@ -8107,6 +8107,8 @@ Paramètres :
** 'void *signal_data' : données envoyées avec le signal
** valeur de retour :
*** 'WEECHAT_RC_OK'
*** 'WEECHAT_RC_OK_EAT' (arrêter l'envoi du signal immédiatement)
(_nouveau dans la version 0.4.0_)
*** 'WEECHAT_RC_ERROR'
* 'callback_data' : pointeur donné au "callback" lorsqu'il est appelé par
WeeChat
@@ -8384,6 +8386,8 @@ modèle de redirection ("pattern").
** 'struct t_hashtable *hashtable' : hashtable
** valeur de retour :
*** 'WEECHAT_RC_OK'
*** 'WEECHAT_RC_OK_EAT' (arrêter l'envoi du signal immédiatement)
(_nouveau dans la version 0.4.0_)
*** 'WEECHAT_RC_ERROR'
* 'callback_data' : pointeur donné au "callback" lorsqu'il est appelé par
WeeChat
+6
View File
@@ -8072,6 +8072,9 @@ Argomenti:
** 'void *signal_data': dati inviati con il segnale
** valore restituito:
*** 'WEECHAT_RC_OK'
// TRANSLATION MISSING
*** 'WEECHAT_RC_OK_EAT' (stop sending the signal immediately)
(_novità nella versione 0.4.0_)
*** 'WEECHAT_RC_ERROR'
* 'callback_data': puntatore fornito alla callback quando chiamata da WeeChat
@@ -8348,6 +8351,9 @@ di redirezione.
** 'struct t_hashtable *hashtable': tabella hash
** valore restituito:
*** 'WEECHAT_RC_OK'
// TRANSLATION MISSING
*** 'WEECHAT_RC_OK_EAT' (stop sending the signal immediately)
(_novità nella versione 0.4.0_)
*** 'WEECHAT_RC_ERROR'
* 'callback_data': puntatore fornito alla callback quando chiamata da WeeChat
+10 -2
View File
@@ -2175,6 +2175,7 @@ void
hook_signal_send (const char *signal, const char *type_data, void *signal_data)
{
struct t_hook *ptr_hook, *next_hook;
int rc;
hook_exec_start ();
@@ -2188,9 +2189,12 @@ hook_signal_send (const char *signal, const char *type_data, void *signal_data)
&& (string_match (signal, HOOK_SIGNAL(ptr_hook, signal), 0)))
{
ptr_hook->running = 1;
(void) (HOOK_SIGNAL(ptr_hook, callback))
rc = (HOOK_SIGNAL(ptr_hook, callback))
(ptr_hook->callback_data, signal, type_data, signal_data);
ptr_hook->running = 0;
if (rc == WEECHAT_RC_OK_EAT)
break;
}
ptr_hook = next_hook;
@@ -2248,6 +2252,7 @@ void
hook_hsignal_send (const char *signal, struct t_hashtable *hashtable)
{
struct t_hook *ptr_hook, *next_hook;
int rc;
hook_exec_start ();
@@ -2261,9 +2266,12 @@ hook_hsignal_send (const char *signal, struct t_hashtable *hashtable)
&& (string_match (signal, HOOK_HSIGNAL(ptr_hook, signal), 0)))
{
ptr_hook->running = 1;
(void) (HOOK_HSIGNAL(ptr_hook, callback))
rc = (HOOK_HSIGNAL(ptr_hook, callback))
(ptr_hook->callback_data, signal, hashtable);
ptr_hook->running = 0;
if (rc == WEECHAT_RC_OK_EAT)
break;
}
ptr_hook = next_hook;