summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2020-10-10 13:31:03 +0200
committerSébastien Helleu <flashcode@flashtux.org>2020-10-10 13:32:36 +0200
commit2384dbe193e5d4e70ab29aba6139fa9a65e35ba0 (patch)
tree6f698aeae2bcd19a1f7bf7f8254dc984aa1f39e9 /src/plugins
parentfd72226a7192dc9496bce45567a289e72e44b483 (diff)
downloadweechat-2384dbe193e5d4e70ab29aba6139fa9a65e35ba0.zip
trigger: add a function to set variables common to all triggers (issue #1567)
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/trigger/trigger-callback.c39
1 files changed, 27 insertions, 12 deletions
diff --git a/src/plugins/trigger/trigger-callback.c b/src/plugins/trigger/trigger-callback.c
index afe350624..c2625265d 100644
--- a/src/plugins/trigger/trigger-callback.c
+++ b/src/plugins/trigger/trigger-callback.c
@@ -123,6 +123,21 @@ trigger_callback_get_irc_server_channel (const char *irc_server_name,
}
/*
+ * Sets variables common to all triggers in a hashtable:
+ * - tg_trigger_name
+ */
+
+void
+trigger_callback_set_common_vars (struct t_trigger *trigger,
+ struct t_hashtable *hashtable)
+{
+ if (!trigger || !hashtable)
+ return;
+
+ weechat_hashtable_set (hashtable, "tg_trigger_name", trigger->name);
+}
+
+/*
* Sets variables in "extra_vars" hashtable using tags from message.
*
* Returns:
@@ -514,7 +529,7 @@ trigger_callback_signal_cb (const void *pointer, void *data,
}
/* add data in hashtable used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
weechat_hashtable_set (extra_vars, "tg_signal", signal);
ptr_signal_data = NULL;
if (strcmp (type_data, WEECHAT_HOOK_SIGNAL_STRING) == 0)
@@ -590,7 +605,7 @@ trigger_callback_hsignal_cb (const void *pointer, void *data,
}
/* add data in hashtable used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
weechat_hashtable_set (extra_vars, "tg_signal", signal);
/* execute the trigger (conditions, regex, command) */
@@ -654,7 +669,7 @@ trigger_callback_modifier_cb (const void *pointer, void *data,
}
/* add data in hashtable used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
weechat_hashtable_set (extra_vars, "tg_modifier", modifier);
weechat_hashtable_set (extra_vars, "tg_modifier_data", modifier_data);
weechat_hashtable_set (extra_vars, "tg_string", string);
@@ -827,7 +842,7 @@ trigger_callback_line_cb (const void *pointer, void *data,
weechat_hashtable_remove (extra_vars, "tags");
/* add data in hashtables used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
ptr_value = weechat_hashtable_get (line, "buffer");
if (!ptr_value || (ptr_value[0] != '0') || (ptr_value[1] != 'x'))
goto end;
@@ -964,7 +979,7 @@ trigger_callback_print_cb (const void *pointer, void *data,
TRIGGER_CALLBACK_CB_NEW_EXTRA_VARS;
/* add data in hashtables used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
weechat_hashtable_set (pointers, "buffer", buffer);
date_tmp = localtime (&date);
if (date_tmp)
@@ -1036,7 +1051,7 @@ trigger_callback_command_cb (const void *pointer, void *data,
TRIGGER_CALLBACK_CB_NEW_EXTRA_VARS;
/* add data in hashtables used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
weechat_hashtable_set (pointers, "buffer", buffer);
for (i = 0; i < argc; i++)
{
@@ -1069,7 +1084,7 @@ trigger_callback_command_run_cb (const void *pointer, void *data,
TRIGGER_CALLBACK_CB_NEW_EXTRA_VARS;
/* add data in hashtables used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
weechat_hashtable_set (pointers, "buffer", buffer);
weechat_hashtable_set (extra_vars, "tg_command", command);
@@ -1112,7 +1127,7 @@ trigger_callback_timer_cb (const void *pointer, void *data,
TRIGGER_CALLBACK_CB_NEW_EXTRA_VARS;
/* add data in hashtable used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
snprintf (str_temp, sizeof (str_temp), "%d", remaining_calls);
weechat_hashtable_set (extra_vars, "tg_remaining_calls", str_temp);
date = time (NULL);
@@ -1146,7 +1161,7 @@ trigger_callback_config_cb (const void *pointer, void *data,
TRIGGER_CALLBACK_CB_NEW_EXTRA_VARS;
/* add data in hashtable used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
weechat_hashtable_set (extra_vars, "tg_option", option);
weechat_hashtable_set (extra_vars, "tg_value", value);
@@ -1175,7 +1190,7 @@ trigger_callback_focus_cb (const void *pointer, void *data,
TRIGGER_CALLBACK_CB_NEW_POINTERS;
/* add data in hashtables used for conditions/replace/command */
- weechat_hashtable_set (info, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, info);
ptr_value = weechat_hashtable_get (info, "_window");
if (ptr_value && ptr_value[0] && (strncmp (ptr_value, "0x", 2) == 0))
{
@@ -1214,7 +1229,7 @@ trigger_callback_info_cb (const void *pointer, void *data,
TRIGGER_CALLBACK_CB_NEW_EXTRA_VARS;
/* add data in hashtable used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
weechat_hashtable_set (extra_vars, "tg_info_name", info_name);
weechat_hashtable_set (extra_vars, "tg_arguments", arguments);
weechat_hashtable_set (extra_vars, "tg_info", "");
@@ -1253,7 +1268,7 @@ trigger_callback_info_hashtable_cb (const void *pointer, void *data,
extra_vars = weechat_hashtable_dup (hashtable);
/* add data in hashtable used for conditions/replace/command */
- weechat_hashtable_set (extra_vars, "tg_trigger_name", trigger->name);
+ trigger_callback_set_common_vars (trigger, extra_vars);
weechat_hashtable_set (extra_vars, "tg_info_name", info_name);
/* execute the trigger (conditions, regex, command) */