aboutsummaryrefslogtreecommitdiff
path: root/cmd-pipe-pane.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd-pipe-pane.c')
-rw-r--r--cmd-pipe-pane.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/cmd-pipe-pane.c b/cmd-pipe-pane.c
index d287d3b6..6284bf37 100644
--- a/cmd-pipe-pane.c
+++ b/cmd-pipe-pane.c
@@ -38,19 +38,18 @@ void cmd_pipe_pane_error_callback(struct bufferevent *, short, void *);
const struct cmd_entry cmd_pipe_pane_entry = {
"pipe-pane", "pipep",
+ "ot:", 0, 1,
CMD_TARGET_PANE_USAGE "[-o] [command]",
- CMD_ARG01, "o",
- cmd_target_init,
- cmd_target_parse,
- cmd_pipe_pane_exec,
- cmd_target_free,
- cmd_target_print
+ 0,
+ NULL,
+ NULL,
+ cmd_pipe_pane_exec
};
int
cmd_pipe_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
{
- struct cmd_target_data *data = self->data;
+ struct args *args = self->args;
struct client *c;
struct window_pane *wp;
char *command;
@@ -59,7 +58,7 @@ cmd_pipe_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
if ((c = cmd_find_client(ctx, NULL)) == NULL)
return (-1);
- if (cmd_find_pane(ctx, data->target, NULL, &wp) == NULL)
+ if (cmd_find_pane(ctx, args_get(args, 't'), NULL, &wp) == NULL)
return (-1);
/* Destroy the old pipe. */
@@ -71,7 +70,7 @@ cmd_pipe_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
}
/* If no pipe command, that is enough. */
- if (data->arg == NULL || *data->arg == '\0')
+ if (args->argc == 0 || *args->argv[0] == '\0')
return (0);
/*
@@ -80,7 +79,7 @@ cmd_pipe_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
*
* bind ^p pipep -o 'cat >>~/output'
*/
- if (cmd_check_flag(data->chflags, 'o') && old_fd != -1)
+ if (args_has(self->args, 'o') && old_fd != -1)
return (0);
/* Open the new pipe. */
@@ -114,7 +113,7 @@ cmd_pipe_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
closefrom(STDERR_FILENO + 1);
- command = status_replace(c, NULL, data->arg, time(NULL), 0);
+ command = status_replace(c, NULL, args->argv[0], time(NULL), 0);
execl(_PATH_BSHELL, "sh", "-c", command, (char *) NULL);
_exit(1);
default: