diff --git a/src/plugins/trigger/trigger-callback.h b/src/plugins/trigger/trigger-callback.h index 3b6f9f3de..29ec9b9d9 100644 --- a/src/plugins/trigger/trigger-callback.h +++ b/src/plugins/trigger/trigger-callback.h @@ -27,6 +27,8 @@ pointers = NULL; \ extra_vars = NULL; \ (void) trigger_rc; \ + if (!trigger_enabled) \ + return __rc; \ trigger = (struct t_trigger *)data; \ if (!trigger || trigger->hook_running) \ return __rc; \ diff --git a/src/plugins/trigger/trigger-command.c b/src/plugins/trigger/trigger-command.c index 6addfbcfb..0b05090a6 100644 --- a/src/plugins/trigger/trigger-command.c +++ b/src/plugins/trigger/trigger-command.c @@ -29,6 +29,18 @@ #include "trigger-config.h" +/* + * Displays the status of triggers (global status). + */ + +void +trigger_command_display_status () +{ + weechat_printf_tags (NULL, "no_trigger", + (trigger_enabled) ? + _("Triggers enabled") : _("Triggers disabled")); +} + /* * Displays one trigger (internal function, must not be called directly). */ @@ -234,13 +246,15 @@ trigger_command_list (const char *message, int verbose) { struct t_trigger *ptr_trigger; + weechat_printf_tags (NULL, "no_trigger", ""); + trigger_command_display_status (); + if (!triggers) { weechat_printf_tags (NULL, "no_trigger", _("No trigger defined")); return; } - weechat_printf_tags (NULL, "no_trigger", ""); weechat_printf_tags (NULL, "no_trigger", message); for (ptr_trigger = triggers; ptr_trigger; @@ -720,10 +734,25 @@ trigger_command_trigger (void *data, struct t_gui_buffer *buffer, int argc, { if (argc < 3) { - weechat_printf_tags (NULL, "no_trigger", - _("%sError: missing arguments for \"%s\" " - "command"), - weechat_prefix ("error"), "trigger"); + if (weechat_strcasecmp (argv[1], "restart") == 0) + { + weechat_printf_tags (NULL, "no_trigger", + _("%sError: missing arguments for \"%s\" " + "command"), + weechat_prefix ("error"), "trigger"); + goto end; + } + if (weechat_strcasecmp (argv[1], "enable") == 0) + weechat_config_option_set (trigger_config_look_enabled, "1", 1); + else if (weechat_strcasecmp (argv[1], "disable") == 0) + weechat_config_option_set (trigger_config_look_enabled, "0", 1); + else if (weechat_strcasecmp (argv[1], "toggle") == 0) + { + weechat_config_option_set (trigger_config_look_enabled, + (trigger_enabled) ? "0" : "1", + 1); + } + trigger_command_display_status (); goto end; } enable = -1; @@ -875,7 +904,8 @@ trigger_command_init () " || input|output|recreate " " || set