version 1.119, 2014/11/06 10:56:44 |
version 1.120, 2014/11/09 15:13:01 |
|
|
window_copy_copy_pipe(struct window_pane *wp, struct session *sess, |
window_copy_copy_pipe(struct window_pane *wp, struct session *sess, |
const char *bufname, const char *arg) |
const char *bufname, const char *arg) |
{ |
{ |
void *buf; |
void *buf; |
size_t len; |
size_t len; |
struct job *job; |
struct job *job; |
|
struct format_tree *ft; |
|
char *expanded; |
|
|
|
|
buf = window_copy_get_selection(wp, &len); |
buf = window_copy_get_selection(wp, &len); |
if (buf == NULL) |
if (buf == NULL) |
return; |
return; |
|
|
job = job_run(arg, sess, NULL, NULL, NULL); |
ft = format_create(); |
|
format_window_pane(ft, wp); |
|
if (sess != NULL) |
|
format_session(ft, sess); |
|
expanded = format_expand(ft, arg); |
|
|
|
job = job_run(expanded, sess, NULL, NULL, NULL); |
bufferevent_write(job->event, buf, len); |
bufferevent_write(job->event, buf, len); |
|
|
|
free(expanded); |
|
format_free(ft); |
|
|
window_copy_copy_buffer(wp, bufname, buf, len); |
window_copy_copy_buffer(wp, bufname, buf, len); |
} |
} |