From bf1e23741015c60e869bd0cdff16e86a35195f7d Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Tue, 22 Jun 2010 23:35:20 +0000 Subject: Sync OpenBSD patchset 726: Add a choose-buffer command for easier use of the paste buffer stack. --- paste.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'paste.c') diff --git a/paste.c b/paste.c index 2ff4133e..e54abc4d 100644 --- a/paste.c +++ b/paste.c @@ -1,4 +1,4 @@ -/* $Id: paste.c,v 1.13 2009-12-04 22:14:47 tcunha Exp $ */ +/* $Id: paste.c,v 1.14 2010-06-22 23:35:20 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -20,6 +20,7 @@ #include #include +#include #include "tmux.h" @@ -156,3 +157,27 @@ paste_replace(struct paste_stack *ps, u_int idx, char *data, size_t size) return (0); } + +/* Convert a buffer into a visible string. */ +char * +paste_print(struct paste_buffer *pb, size_t width) +{ + char *buf; + size_t len, used; + + if (width < 3) + width = 3; + buf = xmalloc(width * 4 + 1); + + len = pb->size; + if (len > width) + len = width; + + used = strvisx(buf, pb->data, len, VIS_OCTAL|VIS_TAB|VIS_NL); + if (pb->size > width || used > width) { + buf[width - 3] = '\0'; + strlcat(buf, "...", width); + } + + return (buf); +} -- cgit