From 47c097cb51da9622180963af5391d142e7d4ade3 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Tue, 27 Nov 2012 20:22:12 +0000 Subject: Support middle-click paste, based on a diff from Ailin Nemui. --- cmd-paste-buffer.c | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) (limited to 'cmd-paste-buffer.c') diff --git a/cmd-paste-buffer.c b/cmd-paste-buffer.c index 9bf27fcd..06402ebb 100644 --- a/cmd-paste-buffer.c +++ b/cmd-paste-buffer.c @@ -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); -} -- cgit