Support the status_replace # replacement sequences in the pipe-pane

command, thanks to Andrea Barisani.
pull/1/head
Nicholas Marriott 2010-06-05 16:34:30 +00:00
parent 0440d325d9
commit ceed5cc9a9
2 changed files with 14 additions and 2 deletions

View File

@ -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. */

7
tmux.1
View File

@ -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