summaryrefslogtreecommitdiffstats
path: root/window-copy.c
diff options
context:
space:
mode:
authornicm <nicm>2017-03-08 13:36:12 +0000
committernicm <nicm>2017-03-08 13:36:12 +0000
commit6b2009ad725b662853b8e94aee233fabdc5490f9 (patch)
treea38064466deb34fce243a7051e0139afc6c56080 /window-copy.c
parent1e6e606f54537c732cce48e5d3eae7fc29281fe5 (diff)
Add a helper function for the most common format_create/defaults/expand
pattern.
Diffstat (limited to 'window-copy.c')
-rw-r--r--window-copy.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/window-copy.c b/window-copy.c
index cb6243db..bf7dae56 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -1604,29 +1604,23 @@ window_copy_copy_buffer(struct window_pane *wp, const char *bufname, void *buf,
}
static void
-window_copy_copy_pipe(struct window_pane *wp, struct session *sess,
+window_copy_copy_pipe(struct window_pane *wp, struct session *s,
const char *bufname, const char *arg)
{
- void *buf;
- size_t len;
- struct job *job;
- struct format_tree *ft;
- char *expanded;
+ void *buf;
+ size_t len;
+ struct job *job;
+ char *expanded;
buf = window_copy_get_selection(wp, &len);
if (buf == NULL)
return;
+ expanded = format_single(NULL, arg, NULL, s, NULL, wp);
- ft = format_create(NULL, FORMAT_NONE, 0);
- format_defaults(ft, NULL, sess, NULL, wp);
- expanded = format_expand(ft, arg);
-
- job = job_run(expanded, sess, NULL, NULL, NULL, NULL);
+ job = job_run(expanded, s, NULL, NULL, NULL, NULL);
bufferevent_write(job->event, buf, len);
free(expanded);
- format_free(ft);
-
window_copy_copy_buffer(wp, bufname, buf, len);
}