diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2011-01-04 02:03:41 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2011-01-04 02:03:41 +0000 |
commit | 96c37fa80a46e189b9b6535242aa1966f4d375c8 (patch) | |
tree | 38f3b6c86abbddd1388528b39f70380ee6661c54 /cmd-select-pane.c | |
parent | 55346b0d103016e8ee633e08e41b8b977b5904ef (diff) | |
download | rtmux-96c37fa80a46e189b9b6535242aa1966f4d375c8.tar.gz rtmux-96c37fa80a46e189b9b6535242aa1966f4d375c8.tar.bz2 rtmux-96c37fa80a46e189b9b6535242aa1966f4d375c8.zip |
Now that parsing is common, merge some of the small, related commands
together to use the same code.
Also add some arguments (such as -n and -p) to some commands to match
existing commands.
Diffstat (limited to 'cmd-select-pane.c')
-rw-r--r-- | cmd-select-pane.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/cmd-select-pane.c b/cmd-select-pane.c index a250bb6e..9aed0a92 100644 --- a/cmd-select-pane.c +++ b/cmd-select-pane.c @@ -29,14 +29,24 @@ int cmd_select_pane_exec(struct cmd *, struct cmd_ctx *); const struct cmd_entry cmd_select_pane_entry = { "select-pane", "selectp", - "DLRt:U", 0, 0, - "[-DLRU] " CMD_TARGET_PANE_USAGE, + "lDLRt:U", 0, 0, + "[-lDLRU] " CMD_TARGET_PANE_USAGE, 0, cmd_select_pane_key_binding, NULL, cmd_select_pane_exec }; +const struct cmd_entry cmd_last_pane_entry = { + "last-pane", "lastp", + "t:", 0, 0, + CMD_TARGET_WINDOW_USAGE, + 0, + NULL, + NULL, + cmd_select_pane_exec +}; + void cmd_select_pane_key_binding(struct cmd *self, int key) { @@ -60,6 +70,19 @@ cmd_select_pane_exec(struct cmd *self, struct cmd_ctx *ctx) struct winlink *wl; struct window_pane *wp; + if (self->entry == &cmd_last_pane_entry || args_has(args, 'l')) { + wl = cmd_find_window(ctx, args_get(args, 't'), NULL); + if (wl == NULL) + return (-1); + + if (wl->window->last == NULL) { + ctx->error(ctx, "no last pane"); + return (-1); + } + window_set_active_pane(wl->window, wl->window->last); + return (0); + } + if ((wl = cmd_find_pane(ctx, args_get(args, 't'), NULL, &wp)) == NULL) return (-1); |