trigger: add a function to set variables common to all triggers (issue #1567)
This commit is contained in:
parent
fd72226a71
commit
2384dbe193
@ -122,6 +122,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.
|
||||
*
|
||||
@ -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) */
|
||||
|
Loading…
x
Reference in New Issue
Block a user