summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2010-06-05 16:34:31 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2010-06-05 16:34:31 +0000
commite49bc863c4403dfec710ad3a15977a979c956b02 (patch)
tree8f3fb3ac96ebbf111c89173ee1a6cf4392d1e7a0 /usr.bin
parentbc721be983a60f78349d7d5e893ce65d8f9136f1 (diff)
Support the status_replace # replacement sequences in the pipe-pane
command, thanks to Andrea Barisani.
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/tmux/cmd-pipe-pane.c11
-rw-r--r--usr.bin/tmux/tmux.111
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