Hi, This is V2 of the hook support patches from before. Hopefully I've addressed all of the feedback points, Nicholas. I'm expecting nit-picking to take place now. :)
Not many functional changes from the original patches -- a bug fix or two perhaps. I've also added a special "on-bell" hook which will get run after tmux has rung a bell for things like activity, silence, content, etc. I have not bothered to separate out the bell event in to the specific reason why the bell occurred. It is unclear whether this is wanted or not. As always comments welcome, as well as much testing. Thomas Adam (3): Define hooks infrasructure Convert commands to use prepare() Define on-bell hook. Makefile.am | 3 ++ cmd-attach-session.c | 14 ++++++- cmd-bind-key.c | 3 +- cmd-break-pane.c | 17 +++++++- cmd-capture-pane.c | 15 ++++++- cmd-choose-buffer.c | 17 ++++++-- cmd-choose-client.c | 17 ++++++-- cmd-choose-list.c | 17 ++++++-- cmd-choose-tree.c | 26 +++++++++--- cmd-clear-history.c | 17 ++++++-- cmd-clock-mode.c | 17 ++++++-- cmd-command-prompt.c | 14 ++++++- cmd-confirm-before.c | 14 ++++++- cmd-copy-mode.c | 15 +++++-- cmd-delete-buffer.c | 3 +- cmd-detach-client.c | 24 ++++++++--- cmd-display-message.c | 42 +++++++++++++------ cmd-display-panes.c | 17 ++++++-- cmd-find-window.c | 17 ++++++-- cmd-has-session.c | 17 +++++--- cmd-if-shell.c | 34 ++++++++++----- cmd-join-pane.c | 27 +++++++++--- cmd-kill-pane.c | 17 ++++++-- cmd-kill-server.c | 3 +- cmd-kill-session.c | 14 ++++++- cmd-kill-window.c | 17 +++++++- cmd-link-window.c | 23 +++++++++-- cmd-list-buffers.c | 3 +- cmd-list-clients.c | 21 ++++++---- cmd-list-commands.c | 3 +- cmd-list-keys.c | 3 +- cmd-list-panes.c | 24 +++++++++-- cmd-list-sessions.c | 3 +- cmd-list-windows.c | 18 ++++++-- cmd-load-buffer.c | 3 +- cmd-lock-server.c | 31 ++++++++++---- cmd-move-window.c | 28 +++++++++++-- cmd-new-session.c | 4 +- cmd-new-window.c | 24 +++++++++-- cmd-paste-buffer.c | 18 ++++++-- cmd-pipe-pane.c | 16 ++++++- cmd-queue.c | 45 +++++++++++++++++++- cmd-refresh-client.c | 14 ++++++- cmd-rename-session.c | 14 ++++++- cmd-rename-window.c | 16 +++++-- cmd-resize-pane.c | 16 ++++++- cmd-respawn-pane.c | 17 +++++++- cmd-respawn-window.c | 16 ++++++- cmd-rotate-window.c | 15 +++++-- cmd-run-shell.c | 19 ++++++++- cmd-save-buffer.c | 6 ++- cmd-select-layout.c | 20 +++++++-- cmd-select-pane.c | 28 ++++++++++--- cmd-select-window.c | 46 +++++++++++++++++---- cmd-send-keys.c | 20 +++++++-- cmd-server-info.c | 3 +- cmd-set-buffer.c | 3 +- cmd-set-environment.c | 14 ++++++- cmd-set-hook.c | 100 ++++++++++++++++++++++++++++++++++++++++++++ cmd-set-option.c | 6 ++- cmd-show-environment.c | 14 ++++++- cmd-show-hooks.c | 71 +++++++++++++++++++++++++++++++ cmd-show-messages.c | 17 ++++++-- cmd-show-options.c | 28 ++++++++++--- cmd-source-file.c | 3 +- cmd-split-window.c | 17 +++++++- cmd-start-server.c | 3 +- cmd-suspend-client.c | 17 ++++++-- cmd-swap-pane.c | 17 ++++++-- cmd-swap-window.c | 25 +++++++---- cmd-switch-client.c | 20 ++++++--- cmd-unbind-key.c | 3 +- cmd-unlink-window.c | 17 ++++++-- cmd-wait-for.c | 3 +- cmd.c | 16 +++++++ hooks.c | 110 +++++++++++++++++++++++++++++++++++++++++++++++++ server-window.c | 11 ++++- session.c | 2 + tmux.c | 2 + tmux.h | 81 ++++++++++++++++++++++++++++-------- 80 files changed, 1312 insertions(+), 243 deletions(-) create mode 100644 cmd-set-hook.c create mode 100644 cmd-show-hooks.c create mode 100644 hooks.c -- 1.7.11.4 ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users