summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/cmd-move-window.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2020-06-13 09:05:53 +0000
committernicm <nicm@openbsd.org>2020-06-13 09:05:53 +0000
commit4f91c93509bdc1be6b5c071e077134971826656c (patch)
tree931b106fc49a59f2c62da747338349f0b9a73db2 /usr.bin/tmux/cmd-move-window.c
parentSome new firmware for ConnectX-5 tries to give pages back when (diff)
downloadwireguard-openbsd-4f91c93509bdc1be6b5c071e077134971826656c.tar.xz
wireguard-openbsd-4f91c93509bdc1be6b5c071e077134971826656c.zip
Add -b flags to insert a window before (like the existing -a for after)
to break-pane, move-window, new-window. GitHub issue 2261.
Diffstat (limited to 'usr.bin/tmux/cmd-move-window.c')
-rw-r--r--usr.bin/tmux/cmd-move-window.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/usr.bin/tmux/cmd-move-window.c b/usr.bin/tmux/cmd-move-window.c
index c5df28f4fda..efbc3255311 100644
--- a/usr.bin/tmux/cmd-move-window.c
+++ b/usr.bin/tmux/cmd-move-window.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-move-window.c,v 1.32 2020/04/22 21:15:33 nicm Exp $ */
+/* $OpenBSD: cmd-move-window.c,v 1.33 2020/06/13 09:05:53 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -32,8 +32,8 @@ const struct cmd_entry cmd_move_window_entry = {
.name = "move-window",
.alias = "movew",
- .args = { "adkrs:t:", 0, 0 },
- .usage = "[-dkr] " CMD_SRCDST_WINDOW_USAGE,
+ .args = { "abdkrs:t:", 0, 0 },
+ .usage = "[-abdkr] " CMD_SRCDST_WINDOW_USAGE,
.source = { 's', CMD_FIND_WINDOW, 0 },
/* -t is special */
@@ -46,8 +46,8 @@ const struct cmd_entry cmd_link_window_entry = {
.name = "link-window",
.alias = "linkw",
- .args = { "adks:t:", 0, 0 },
- .usage = "[-dk] " CMD_SRCDST_WINDOW_USAGE,
+ .args = { "abdks:t:", 0, 0 },
+ .usage = "[-abdk] " CMD_SRCDST_WINDOW_USAGE,
.source = { 's', CMD_FIND_WINDOW, 0 },
/* -t is special */
@@ -67,7 +67,7 @@ cmd_move_window_exec(struct cmd *self, struct cmdq_item *item)
struct session *dst;
struct winlink *wl = source->wl;
char *cause;
- int idx, kflag, dflag, sflag;
+ int idx, kflag, dflag, sflag, before;
if (args_has(args, 'r')) {
if (cmd_find_target(&target, item, tflag, CMD_FIND_SESSION,
@@ -90,11 +90,12 @@ cmd_move_window_exec(struct cmd *self, struct cmdq_item *item)
dflag = args_has(args, 'd');
sflag = args_has(args, 's');
- if (args_has(args, 'a')) {
+ before = args_has(args, 'b');
+ if (args_has(args, 'a') || before) {
if (target.wl != NULL)
- idx = winlink_shuffle_up(dst, target.wl);
+ idx = winlink_shuffle_up(dst, target.wl, before);
else
- idx = winlink_shuffle_up(dst, dst->curw);
+ idx = winlink_shuffle_up(dst, dst->curw, before);
if (idx == -1)
return (CMD_RETURN_ERROR);
}