diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2013-03-25 11:43:34 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2013-03-25 11:43:34 +0000 |
commit | 72f8afdae4309b4a2522f83f5c96d0909f4038a0 (patch) | |
tree | be14d2f127e8b5472b0928eee2815fe5ce23d20a /usr.bin | |
parent | e6067a65342859bdeda474215d5c768d7f60747a (diff) |
Create a new context when copying instead of using the input
context. The input context may not exist yet. Fixes crash when copying
from config file errors.
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/tmux/window-copy.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/usr.bin/tmux/window-copy.c b/usr.bin/tmux/window-copy.c index a5b597562fe..c098a0df037 100644 --- a/usr.bin/tmux/window-copy.c +++ b/usr.bin/tmux/window-copy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window-copy.c,v 1.90 2013/03/25 11:43:01 nicm Exp $ */ +/* $OpenBSD: window-copy.c,v 1.91 2013/03/25 11:43:33 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -1385,10 +1385,14 @@ window_copy_get_selection(struct window_pane *wp, size_t *len) void window_copy_copy_buffer(struct window_pane *wp, int idx, void *buf, size_t len) { - u_int limit; + u_int limit; + struct screen_write_ctx ctx; - if (options_get_number(&global_options, "set-clipboard")) - screen_write_setselection(&wp->ictx.ctx, buf, len); + if (options_get_number(&global_options, "set-clipboard")) { + screen_write_start(&ctx, wp, NULL); + screen_write_setselection(&ctx, buf, len); + screen_write_stop(&ctx); + } if (idx == -1) { limit = options_get_number(&global_options, "buffer-limit"); |