diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2021-09-16 16:31:41 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-16 16:31:41 -0400 |
commit | 7d21b958691c06ed6b40aa1909cd81c37a67844e (patch) | |
tree | 4c3a89ec96a7cff096032c9103131509b82c393c /src/nvim/eval/executor.c | |
parent | 2d81f1927958374d646ac24df479035c77d9b544 (diff) | |
parent | 89f7f7a991de6135f9009b832cd7736dabf2050c (diff) | |
download | rneovim-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.c | 14 |
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; |