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.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/cmd-pipe-pane.c b/cmd-pipe-pane.c
index e6fe2c21..671902c5 100644
--- a/cmd-pipe-pane.c
+++ b/cmd-pipe-pane.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-pipe-pane.c,v 1.15 2010-10-24 00:45:57 tcunha Exp $ */
+/* $Id: cmd-pipe-pane.c,v 1.16 2011-01-07 14:45:34 tcunha Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -37,19 +37,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;
@@ -58,7 +57,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. */
@@ -70,7 +69,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);
/*
@@ -79,7 +78,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. */
@@ -113,7 +112,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: