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

4
tmux.h
View File

@ -703,7 +703,7 @@ struct hook {
/* Option data structures. */
struct options_entry {
char *name;
const char *name;
enum {
OPTIONS_STRING,
@ -1514,7 +1514,7 @@ struct hook *hooks_first(struct hooks *);
struct hook *hooks_next(struct hook *);
void hooks_add(struct hooks *, const char *, struct cmd_list *);
void hooks_copy(struct hooks *, struct hooks *);
void hooks_remove(struct hooks *, struct hook *);
void hooks_remove(struct hooks *, const char *);
struct hook *hooks_find(struct hooks *, const char *);
void hooks_run(struct hooks *, const char *, struct client *);