diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2010-01-07 19:47:11 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2010-01-07 19:47:11 +0000 |
commit | 6c7816e1f16d205a59fdc3edc11d03c42edbb3d5 (patch) | |
tree | 6dcf8e3e62d52719b57cdbfa62ea0a4c6e87724a /usr.bin/tmux | |
parent | 881021dd47d314987fa9f16e4c744b6fd9309ff5 (diff) |
Change split-window to accept a pane target (it should be split-pane but
renaming the command would be annoying).
Diffstat (limited to 'usr.bin/tmux')
-rw-r--r-- | usr.bin/tmux/cmd-split-window.c | 20 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.1 | 13 |
2 files changed, 17 insertions, 16 deletions
diff --git a/usr.bin/tmux/cmd-split-window.c b/usr.bin/tmux/cmd-split-window.c index 45b9eaf2cd3..f82888355fc 100644 --- a/usr.bin/tmux/cmd-split-window.c +++ b/usr.bin/tmux/cmd-split-window.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-split-window.c,v 1.16 2009/12/03 22:50:10 nicm Exp $ */ +/* $OpenBSD: cmd-split-window.c,v 1.17 2010/01/07 19:47:10 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -45,7 +45,7 @@ struct cmd_split_window_data { const struct cmd_entry cmd_split_window_entry = { "split-window", "splitw", - "[-dhv] [-p percentage|-l size] [-t target-window] [command]", + "[-dhv] [-p percentage|-l size] [-t target-pane] [command]", 0, "", cmd_split_window_init, cmd_split_window_parse, @@ -149,7 +149,7 @@ cmd_split_window_exec(struct cmd *self, struct cmd_ctx *ctx) struct session *s; struct winlink *wl; struct window *w; - struct window_pane *wp; + struct window_pane *wp, *new_wp; struct environ env; char *cmd, *cwd, *cause; const char *shell; @@ -157,7 +157,7 @@ cmd_split_window_exec(struct cmd *self, struct cmd_ctx *ctx) int size; enum layout_type type; - if ((wl = cmd_find_window(ctx, data->target, &s)) == NULL) + if ((wl = cmd_find_pane(ctx, data->target, &s, &wp)) == NULL) return (-1); w = wl->window; @@ -193,10 +193,10 @@ cmd_split_window_exec(struct cmd *self, struct cmd_ctx *ctx) if (*shell == '\0' || areshell(shell)) shell = _PATH_BSHELL; - wp = window_add_pane(w, hlimit); - if (window_pane_spawn(wp, cmd, shell, cwd, &env, s->tio, &cause) != 0) + new_wp = window_add_pane(w, hlimit); + if (window_pane_spawn(new_wp, cmd, shell, cwd, &env, s->tio, &cause) != 0) goto error; - if (layout_split_pane(w->active, type, size, wp) != 0) { + if (layout_split_pane(wp, type, size, new_wp) != 0) { cause = xstrdup("pane too small"); goto error; } @@ -204,7 +204,7 @@ cmd_split_window_exec(struct cmd *self, struct cmd_ctx *ctx) server_redraw_window(w); if (!data->flag_detached) { - window_set_active_pane(w, wp); + window_set_active_pane(w, new_wp); session_select(s, wl->idx); server_redraw_session(s); } else @@ -215,8 +215,8 @@ cmd_split_window_exec(struct cmd *self, struct cmd_ctx *ctx) error: environ_free(&env); - if (wp != NULL) - window_remove_pane(w, wp); + if (new_wp != NULL) + window_remove_pane(w, new_wp); ctx->error(ctx, "create pane failed: %s", cause); xfree(cause); return (-1); diff --git a/usr.bin/tmux/tmux.1 b/usr.bin/tmux/tmux.1 index f7ceb2be07a..8a4b6c7989e 100644 --- a/usr.bin/tmux/tmux.1 +++ b/usr.bin/tmux/tmux.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: tmux.1,v 1.135 2010/01/03 12:51:05 nicm Exp $ +.\" $OpenBSD: tmux.1,v 1.136 2010/01/07 19:47:10 nicm Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> .\" @@ -14,7 +14,7 @@ .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: January 3 2010 $ +.Dd $Mdocdate: January 7 2010 $ .Dt TMUX 1 .Os .Sh NAME @@ -984,11 +984,12 @@ Select the window at .Oo Fl l .Ar size | .Fl p Ar percentage Oc -.Op Fl t Ar target-window +.Op Fl t Ar target-pane .Op Ar command .Xc .D1 (alias: splitw ) -Creates a new pane by splitting the active pane: +Create a new pane by splitting +.Ar target-pane : .Fl h does a horizontal split and .Fl v @@ -999,9 +1000,9 @@ The .Fl l and .Fl p -options specify the size of the new window in lines (for vertical split) or in +options specify the size of the new pane in lines (for vertical split) or in cells (for horizontal split), or as a percentage, respectively. -All other options have the same meaning as in the +All other options have the same meaning as for the .Ic new-window command. .It Xo Ic swap-pane |