diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2010-06-05 16:34:30 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2010-06-05 16:34:30 +0000 |
commit | ceed5cc9a936840a4e40718e0e30f44e71534c5a (patch) | |
tree | 7adc97dbe0a2885fc8f53a0a378eff1b787c7f0c /cmd-pipe-pane.c | |
parent | 0440d325d9dcef2170f2b7695d06d0ba10e9875d (diff) | |
download | rtmux-ceed5cc9a936840a4e40718e0e30f44e71534c5a.tar.gz rtmux-ceed5cc9a936840a4e40718e0e30f44e71534c5a.tar.bz2 rtmux-ceed5cc9a936840a4e40718e0e30f44e71534c5a.zip |
Support the status_replace # replacement sequences in the pipe-pane
command, thanks to Andrea Barisani.
Diffstat (limited to 'cmd-pipe-pane.c')
-rw-r--r-- | cmd-pipe-pane.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/cmd-pipe-pane.c b/cmd-pipe-pane.c index 0d7c3ff6..72903a3d 100644 --- a/cmd-pipe-pane.c +++ b/cmd-pipe-pane.c @@ -23,6 +23,7 @@ #include <fcntl.h> #include <paths.h> #include <string.h> +#include <time.h> #include <unistd.h> #include "tmux.h" @@ -50,9 +51,14 @@ int cmd_pipe_pane_exec(struct cmd *self, struct cmd_ctx *ctx) { struct cmd_target_data *data = self->data; + struct client *c; struct window_pane *wp; + char *command; int old_fd, pipe_fd[2], null_fd, mode; + if ((c = cmd_find_client(ctx, data->target)) == NULL) + return (-1); + if (cmd_find_pane(ctx, data->target, NULL, &wp) == NULL) return (-1); @@ -106,7 +112,8 @@ cmd_pipe_pane_exec(struct cmd *self, struct cmd_ctx *ctx) if (null_fd != STDOUT_FILENO && null_fd != STDERR_FILENO) close(null_fd); - execl(_PATH_BSHELL, "sh", "-c", data->arg, (char *) NULL); + command = status_replace(c, NULL, data->arg, time(NULL), 0); + execl(_PATH_BSHELL, "sh", "-c", command, (char *) NULL); _exit(1); default: /* Parent process. */ |