diff options
author | 2012-11-27 20:22:12 +0000 | |
---|---|---|
committer | 2012-11-27 20:22:12 +0000 | |
commit | 7a3aab4efb9ba3115a1bf31c2bca19c7329ca554 (patch) | |
tree | 3b79c895182e05f65924bea4af8e49ff4fcc42ea /usr.bin/tmux/cmd-paste-buffer.c | |
parent | Support the 47 and 1047 SM and RM sequences (alternate screen without (diff) | |
download | wireguard-openbsd-7a3aab4efb9ba3115a1bf31c2bca19c7329ca554.tar.xz wireguard-openbsd-7a3aab4efb9ba3115a1bf31c2bca19c7329ca554.zip |
Support middle-click paste, based on a diff from Ailin Nemui.
Diffstat (limited to 'usr.bin/tmux/cmd-paste-buffer.c')
-rw-r--r-- | usr.bin/tmux/cmd-paste-buffer.c | 36 |
1 files changed, 4 insertions, 32 deletions
diff --git a/usr.bin/tmux/cmd-paste-buffer.c b/usr.bin/tmux/cmd-paste-buffer.c index 2d100d19929..4885f3e4e5b 100644 --- a/usr.bin/tmux/cmd-paste-buffer.c +++ b/usr.bin/tmux/cmd-paste-buffer.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-paste-buffer.c,v 1.19 2012/07/11 07:10:15 nicm Exp $ */ +/* $OpenBSD: cmd-paste-buffer.c,v 1.20 2012/11/27 20:22:12 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -31,7 +31,7 @@ enum cmd_retval cmd_paste_buffer_exec(struct cmd *, struct cmd_ctx *); void cmd_paste_buffer_filter(struct window_pane *, - const char *, size_t, const char *, int bracket); + const char *, size_t, const char *, int); const struct cmd_entry cmd_paste_buffer_entry = { "paste-buffer", "pasteb", @@ -87,9 +87,8 @@ cmd_paste_buffer_exec(struct cmd *self, struct cmd_ctx *ctx) else sepstr = "\r"; } - pflag = args_has(args, 'p') && - (wp->screen->mode & MODE_BRACKETPASTE); - cmd_paste_buffer_filter(wp, pb->data, pb->size, sepstr, pflag); + pflag = (wp->screen->mode & MODE_BRACKETPASTE); + paste_send_pane(pb, wp, sepstr, args_has(args, 'p') && pflag); } /* Delete the buffer if -d. */ @@ -102,30 +101,3 @@ cmd_paste_buffer_exec(struct cmd *self, struct cmd_ctx *ctx) return (CMD_RETURN_NORMAL); } - -/* Add bytes to a buffer and filter '\n' according to separator. */ -void -cmd_paste_buffer_filter(struct window_pane *wp, - const char *data, size_t size, const char *sep, int bracket) -{ - const char *end = data + size; - const char *lf; - size_t seplen; - - if (bracket) - bufferevent_write(wp->event, "\033[200~", 6); - - seplen = strlen(sep); - while ((lf = memchr(data, '\n', end - data)) != NULL) { - if (lf != data) - bufferevent_write(wp->event, data, lf - data); - bufferevent_write(wp->event, sep, seplen); - data = lf + 1; - } - - if (end != data) - bufferevent_write(wp->event, data, end - data); - - if (bracket) - bufferevent_write(wp->event, "\033[201~", 6); -} |