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

trigger: do not allow a name starting with "-"

This commit is contained in:
Sebastien Helleu
2014-01-26 08:30:40 +01:00
parent 30942f7f62
commit f92d6e9da3
3 changed files with 27 additions and 5 deletions
+9 -1
View File
@@ -114,6 +114,13 @@ trigger_command_trigger (void *data, struct t_gui_buffer *buffer, int argc,
weechat_prefix ("error"), "trigger");
return WEECHAT_RC_OK;
}
if (argv[2][0] == '-')
{
weechat_printf (NULL,
_("%s%s: name can not start with \"-\""),
weechat_prefix ("error"), TRIGGER_PLUGIN_NAME);
return WEECHAT_RC_OK;
}
type = trigger_search_hook_type (argv[3]);
if (type < 0)
{
@@ -169,7 +176,8 @@ trigger_command_trigger (void *data, struct t_gui_buffer *buffer, int argc,
}
if (weechat_strcasecmp (argv[3], "name") == 0)
{
trigger_rename (ptr_trigger, argv_eol[4]);
if (!trigger_rename (ptr_trigger, argv_eol[4]))
return WEECHAT_RC_OK;
}
else
{
+17 -3
View File
@@ -656,21 +656,33 @@ trigger_new (const char *name, const char *enabled, const char *hook,
/*
* Renames a trigger.
*
* Returns:
* 1: OK
* 0: error (trigger not renamed)
*/
void
int
trigger_rename (struct t_trigger *trigger, const char *name)
{
int length, i;
char *option_name;
if (!name || !name[0])
return;
return 0;
if (name[0] == '-')
{
weechat_printf (NULL,
_("%s%s: name can not start with \"-\""),
weechat_prefix ("error"), TRIGGER_PLUGIN_NAME);
return 0;
}
length = strlen (name) + 64;
option_name = malloc (length);
if (!option_name)
return;
return 0;
for (i = 0; i < TRIGGER_NUM_OPTIONS; i++)
{
@@ -689,6 +701,8 @@ trigger_rename (struct t_trigger *trigger, const char *name)
trigger->name = strdup (name);
free (option_name);
return 1;
}
/*
+1 -1
View File
@@ -122,7 +122,7 @@ extern struct t_trigger *trigger_new (const char *name,
const char *replace,
const char *command,
const char *return_code);
extern void trigger_rename (struct t_trigger *trigger, const char *name);
extern int trigger_rename (struct t_trigger *trigger, const char *name);
extern void trigger_free (struct t_trigger *trigger);
extern void trigger_free_all ();