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.
This commit is contained in:
nicm
2016-10-13 22:48:51 +00:00
parent 7a1a01feef
commit 4289a1ebfa
13 changed files with 58 additions and 114 deletions

4
tmux.h
View File

@ -1339,8 +1339,7 @@ struct cmd_q {
int references;
int flags;
#define CMD_Q_DEAD 0x1
#define CMD_Q_REENTRY 0x2
#define CMD_Q_NOHOOKS 0x4
#define CMD_Q_NOHOOKS 0x2
struct client *client;
int client_exit;
@ -1404,6 +1403,7 @@ struct cmd_entry {
#define CMD_STARTSERVER 0x1
#define CMD_READONLY 0x2
#define CMD_AFTERHOOK 0x4
int flags;
enum cmd_retval (*exec)(struct cmd *, struct cmd_q *);