diff options
author | Tiago Cunha <tcunha@gmx.com> | 2011-01-07 15:02:38 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2011-01-07 15:02:38 +0000 |
commit | ca413cf270d001df59a13dc1978236b2de8261e4 (patch) | |
tree | 7280499432219903909d933b7dd2312b2e15846b /cmd-select-pane.c | |
parent | b2b5d88f3f828c5ac972097967a58a192cad4fca (diff) | |
download | rtmux-ca413cf270d001df59a13dc1978236b2de8261e4.tar.gz rtmux-ca413cf270d001df59a13dc1978236b2de8261e4.tar.bz2 rtmux-ca413cf270d001df59a13dc1978236b2de8261e4.zip |
Sync OpenBSD patchset 831:
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 | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/cmd-select-pane.c b/cmd-select-pane.c index 8fa71072..c490ab38 100644 --- a/cmd-select-pane.c +++ b/cmd-select-pane.c @@ -1,4 +1,4 @@ -/* $Id: cmd-select-pane.c,v 1.14 2011-01-07 14:45:34 tcunha Exp $ */ +/* $Id: cmd-select-pane.c,v 1.15 2011-01-07 15:02:38 tcunha Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -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); |