diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2021-10-13 21:35:37 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2021-10-23 14:17:09 +0200 |
commit | 8d7816cf27c4ab08d9eff9e7ce3c541105c30ece (patch) | |
tree | 5ae91446ed6602a509ff06ea24aab525281b6b67 /src/nvim/lib | |
parent | 8ade2f5b0495ee41868e52d48816d02249e2364d (diff) | |
download | rneovim-8d7816cf27c4ab08d9eff9e7ce3c541105c30ece.tar.gz rneovim-8d7816cf27c4ab08d9eff9e7ce3c541105c30ece.tar.bz2 rneovim-8d7816cf27c4ab08d9eff9e7ce3c541105c30ece.zip |
feat(decorations): support more than one virt_lines block
Diffstat (limited to 'src/nvim/lib')
-rw-r--r-- | src/nvim/lib/kvec.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/nvim/lib/kvec.h b/src/nvim/lib/kvec.h index eb2d9bbb77..ff0a8bcb7c 100644 --- a/src/nvim/lib/kvec.h +++ b/src/nvim/lib/kvec.h @@ -94,6 +94,17 @@ memcpy((v1).items, (v0).items, sizeof((v1).items[0]) * (v0).size); \ } while (0) +#define kv_splice(v1, v0) \ + do { \ + if ((v1).capacity < (v1).size + (v0).size) { \ + (v1).capacity = (v1).size + (v0).size; \ + kv_roundup32((v1).capacity); \ + kv_resize((v1), (v1).capacity); \ + } \ + memcpy((v1).items + (v1).size, (v0).items, sizeof((v1).items[0]) * (v0).size); \ + (v1).size = (v1).size + (v0).size; \ + } while (0) + #define kv_pushp(v) \ ((((v).size == (v).capacity) ? (kv_resize_full(v), 0) : 0), \ ((v).items + ((v).size++))) @@ -101,6 +112,7 @@ #define kv_push(v, x) \ (*kv_pushp(v) = (x)) + #define kv_a(v, i) \ (*(((v).capacity <= (size_t)(i) \ ? ((v).capacity = (v).size = (i) + 1, \ |