1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-28 22:06:38 +02:00

trigger: refactor some code in hook callbacks using macros

This commit is contained in:
Sebastien Helleu
2014-02-13 12:52:06 +01:00
parent 132b09bde9
commit c103bc6584
2 changed files with 85 additions and 291 deletions
+44
View File
@@ -20,6 +20,50 @@
#ifndef __WEECHAT_TRIGGER_CALLBACK_H
#define __WEECHAT_TRIGGER_CALLBACK_H 1
#define TRIGGER_CALLBACK_CB_INIT(__rc) \
struct t_trigger *trigger; \
struct t_hashtable *pointers, *extra_vars; \
int trigger_rc; \
pointers = NULL; \
extra_vars = NULL; \
(void) trigger_rc; \
trigger = (struct t_trigger *)data; \
if (!trigger || trigger->hook_running) \
return __rc; \
trigger->hook_count_cb++; \
trigger->hook_running = 1; \
trigger_rc = trigger_return_code[ \
weechat_config_integer ( \
trigger->options[TRIGGER_OPTION_RETURN_CODE])];
#define TRIGGER_CALLBACK_CB_NEW_POINTERS \
pointers = weechat_hashtable_new ( \
32, \
WEECHAT_HASHTABLE_STRING, \
WEECHAT_HASHTABLE_POINTER, \
NULL, \
NULL); \
if (!pointers) \
goto end;
#define TRIGGER_CALLBACK_CB_NEW_EXTRA_VARS \
extra_vars = weechat_hashtable_new ( \
32, \
WEECHAT_HASHTABLE_STRING, \
WEECHAT_HASHTABLE_STRING, \
NULL, \
NULL); \
if (!extra_vars) \
goto end;
#define TRIGGER_CALLBACK_CB_END(__rc) \
if (pointers) \
weechat_hashtable_free (pointers); \
if (extra_vars) \
weechat_hashtable_free (extra_vars); \
trigger->hook_running = 0; \
return __rc;
extern int trigger_callback_signal_cb (void *data, const char *signal,
const char *type_data, void *signal_data);
extern int trigger_callback_hsignal_cb (void *data, const char *signal,