We cannot do hooks_find and then hooks_remove because it might have come

from the parent (global) tree, instead make it remove by name like options.

While here, also tidy up a few bits of options and hooks handling (use
RB_FOREACH_SAFE, and a helper function for the free).
This commit is contained in:
nicm
2015-12-11 15:46:57 +00:00
parent d7e11d0af7
commit bd5918760e
4 changed files with 43 additions and 34 deletions

View File

@ -93,8 +93,7 @@ cmd_set_hook_exec(struct cmd *self, struct cmd_q *cmdq)
name);
return (CMD_RETURN_ERROR);
}
if ((hook = hooks_find(hooks, name)) != NULL)
hooks_remove(hooks, hook);
hooks_remove(hooks, name);
return (CMD_RETURN_NORMAL);
}