diff options
Diffstat (limited to 'register.c')
| -rw-r--r-- | register.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -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(®->buf, len)) + if (!buffer_grow(®->buf, len+1)) return false; reg->buf.len = text_bytes_get(txt, range->start, len, reg->buf.data); - return true; + return buffer_append(®->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(®->buf, reg->buf.len + len)) + if (!buffer_grow(®->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(®->buf, "\0", 1); } default: return false; |
