aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/executor.c
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-09-16 16:31:41 -0400
committerGitHub <noreply@github.com>2021-09-16 16:31:41 -0400
commit7d21b958691c06ed6b40aa1909cd81c37a67844e (patch)
tree4c3a89ec96a7cff096032c9103131509b82c393c /src/nvim/eval/executor.c
parent2d81f1927958374d646ac24df479035c77d9b544 (diff)
parent89f7f7a991de6135f9009b832cd7736dabf2050c (diff)
downloadrneovim-7d21b958691c06ed6b40aa1909cd81c37a67844e.tar.gz
rneovim-7d21b958691c06ed6b40aa1909cd81c37a67844e.tar.bz2
rneovim-7d21b958691c06ed6b40aa1909cd81c37a67844e.zip
Merge pull request #15211 from seandewar/blob-port
Port VimL's Blob type - vim-patch:8.1.{0735,0736,0738,0741,0742,0755,0756,0757,0765,0793,0797,0798,0802,1022,1023,1671},8.2.{0121,0184,0404,0521,0829,1473,1866,2712}
Diffstat (limited to 'src/nvim/eval/executor.c')
-rw-r--r--src/nvim/eval/executor.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/nvim/eval/executor.c b/src/nvim/eval/executor.c
index 8ac2c3b8eb..5ced2a0535 100644
--- a/src/nvim/eval/executor.c
+++ b/src/nvim/eval/executor.c
@@ -38,6 +38,20 @@ int eexe_mod_op(typval_T *const tv1, const typval_T *const tv2,
case VAR_SPECIAL: {
break;
}
+ case VAR_BLOB: {
+ if (*op != '+' || tv2->v_type != VAR_BLOB) {
+ break;
+ }
+ // Blob += Blob
+ if (tv1->vval.v_blob != NULL && tv2->vval.v_blob != NULL) {
+ blob_T *const b1 = tv1->vval.v_blob;
+ blob_T *const b2 = tv2->vval.v_blob;
+ for (int i = 0; i < tv_blob_len(b2); i++) {
+ ga_append(&b1->bv_ga, (char)tv_blob_get(b2, i));
+ }
+ }
+ return OK;
+ }
case VAR_LIST: {
if (*op != '+' || tv2->v_type != VAR_LIST) {
break;