From 4289a1ebfa7479413ec5ac543b88c4ea039d00a0 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 13 Oct 2016 22:48:51 +0000 Subject: Trying to do hooks generically is way too complicated and unreliable and confusing, particularly trying to automatically figure out what target hooks should be using. So simplify it: - drop before hooks entirely, they don't seem to be very useful; - commands with special requirements now fire their own after hook (for example, if they change session or window, or if they have -t and -s and need to choose which one the hook uses as current target); - commands with no special requirements can have the CMD_AFTERHOOK flag added and they will use the -t state. At the moment new-session, new-window, split-window fire their own hook, and display-message uses the flag. The remaining commands still need to be looked at. --- cmd-new-window.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'cmd-new-window.c') diff --git a/cmd-new-window.c b/cmd-new-window.c index a8725ee1..4d0e0057 100644 --- a/cmd-new-window.c +++ b/cmd-new-window.c @@ -61,6 +61,7 @@ cmd_new_window_exec(struct cmd *self, struct cmd_q *cmdq) int argc, detached; struct format_tree *ft; struct environ_entry *envent; + struct cmd_find_state fs; if (args_has(args, 'a')) { if ((idx = winlink_shuffle_up(s, wl)) == -1) { @@ -152,10 +153,12 @@ cmd_new_window_exec(struct cmd *self, struct cmd_q *cmdq) format_free(ft); } - cmd_find_from_winlink(&cmdq->current, s, wl); - if (to_free != NULL) free((void *)to_free); + + cmd_find_from_winlink(&fs, s, wl); + if (hooks_wait(s->hooks, cmdq, &fs, "after-new-window") == 0) + return (CMD_RETURN_WAIT); return (CMD_RETURN_NORMAL); error: -- cgit v1.2.3