1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-03 00:03:12 +02:00

trigger: add variable "${tg_trigger_name}" in command trigger evaluated strings (closes #1580)

${tg_trigger_name} is replaced by the trigger name in these command strings:

- description
- arguments
- description of arguments
- completion
This commit is contained in:
Sébastien Helleu
2020-11-14 09:32:24 +01:00
parent b626df72fb
commit b9c8569422
22 changed files with 124 additions and 95 deletions
+16 -4
View File
@@ -268,6 +268,7 @@ trigger_hook (struct t_trigger *trigger)
char *eval_desc, *eval_args, *eval_desc_args, *eval_completion;
int i, argc, strip_colors;
long interval, align_second, max_calls;
struct t_hashtable *extra_vars;
if (!weechat_config_boolean (trigger->options[TRIGGER_OPTION_ENABLED]))
return;
@@ -400,15 +401,24 @@ trigger_hook (struct t_trigger *trigger)
trigger->hooks = malloc (sizeof (trigger->hooks[0]));
if (trigger->hooks)
{
extra_vars = weechat_hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL, NULL);
if (extra_vars)
{
weechat_hashtable_set (extra_vars, "tg_trigger_name",
trigger->name);
}
trigger->hooks_count = 1;
eval_desc = (argc > 1) ? weechat_string_eval_expression (
argv[1], NULL, NULL, NULL) : NULL;
argv[1], NULL, extra_vars, NULL) : NULL;
eval_args = (argc > 2) ? weechat_string_eval_expression (
argv[2], NULL, NULL, NULL) : NULL;
argv[2], NULL, extra_vars, NULL) : NULL;
eval_desc_args = (argc > 3) ? weechat_string_eval_expression (
argv[3], NULL, NULL, NULL) : NULL;
argv[3], NULL, extra_vars, NULL) : NULL;
eval_completion = (argc > 4) ? weechat_string_eval_expression (
argv[4], NULL, NULL, NULL) : NULL;
argv[4], NULL, extra_vars, NULL) : NULL;
trigger->hooks[0] = weechat_hook_command (
argv[0], /* command */
(eval_desc) ? eval_desc : "",
@@ -425,6 +435,8 @@ trigger_hook (struct t_trigger *trigger)
free (eval_desc_args);
if (eval_completion)
free (eval_completion);
if (extra_vars)
weechat_hashtable_free (extra_vars);
}
}
break;