diff options
-rw-r--r-- | usr.bin/tmux/cmd-pipe-pane.c | 11 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.1 | 11 |
2 files changed, 17 insertions, 5 deletions
diff --git a/usr.bin/tmux/cmd-pipe-pane.c b/usr.bin/tmux/cmd-pipe-pane.c index 5544b6580ad..947f5502be9 100644 --- a/usr.bin/tmux/cmd-pipe-pane.c +++ b/usr.bin/tmux/cmd-pipe-pane.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-pipe-pane.c,v 1.12 2010/05/04 17:28:16 nicm Exp $ */ +/* $OpenBSD: cmd-pipe-pane.c,v 1.13 2010/06/05 16:34:30 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -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. */ diff --git a/usr.bin/tmux/tmux.1 b/usr.bin/tmux/tmux.1 index 933cb536ad6..5eb592728fa 100644 --- a/usr.bin/tmux/tmux.1 +++ b/usr.bin/tmux/tmux.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: tmux.1,v 1.173 2010/05/31 19:51:29 nicm Exp $ +.\" $OpenBSD: tmux.1,v 1.174 2010/06/05 16:34:30 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: May 31 2010 $ +.Dd $Mdocdate: June 5 2010 $ .Dt TMUX 1 .Os .Sh NAME @@ -1124,6 +1124,11 @@ A pane may only be piped to one command at a time, any existing pipe is closed before .Ar shell-command is executed. +The +.Ar shell-command +string may contain the special character sequences supported by the +.Ic status-left +command. If no .Ar shell-command is given, the current pipe (if any) is closed. @@ -1133,7 +1138,7 @@ The option only opens a new pipe if no previous pipe exists, allowing a pipe to be toggled with a single key, for example: .Bd -literal -offset indent -bind-key C-p pipe-pane -o 'cat >>~/output' +bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P' .Ed .It Xo Ic previous-window .Op Fl a |