aboutsummaryrefslogtreecommitdiff
path: root/register.c
diff options
context:
space:
mode:
Diffstat (limited to 'register.c')
-rw-r--r--register.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/register.c b/register.c
index 16a7233..4e65403 100644
--- a/register.c
+++ b/register.c
@@ -60,10 +60,10 @@ bool register_put_range(Vis *vis, Register *reg, Text *txt, Filerange *range) {
case REGISTER_NORMAL:
{
size_t len = text_range_size(range);
- if (!buffer_grow(&reg->buf, len))
+ if (!buffer_grow(&reg->buf, len+1))
return false;
reg->buf.len = text_bytes_get(txt, range->start, len, reg->buf.data);
- return true;
+ return buffer_append(&reg->buf, "\0", 1);
}
case REGISTER_CLIPBOARD:
{
@@ -89,10 +89,12 @@ bool register_append_range(Register *reg, Text *txt, Filerange *range) {
case REGISTER_NORMAL:
{
size_t len = text_range_size(range);
- if (!buffer_grow(&reg->buf, reg->buf.len + len))
+ if (!buffer_grow(&reg->buf, reg->buf.len + len + 1))
return false;
+ if (reg->buf.len > 0 && reg->buf.data[reg->buf.len-1] == '\0')
+ reg->buf.len--;
reg->buf.len += text_bytes_get(txt, range->start, len, reg->buf.data + reg->buf.len);
- return true;
+ return buffer_append(&reg->buf, "\0", 1);
}
default:
return false;