summaryrefslogtreecommitdiff
path: root/src/vim9execute.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-04-14 20:35:23 +0200
committerBram Moolenaar <Bram@vim.org>2021-04-14 20:35:23 +0200
commit0e3ff1919603ee4c4a347fdf761dbdbdeb068015 (patch)
treedb3dc3df238da3a1c44116827796157cdd3346f0 /src/vim9execute.c
parentb47bed2f7ada4dfae78f76f27473b83507e40315 (diff)
downloadvim-git-8.2.2765.tar.gz
patch 8.2.2765: Vim9: not all blob operations workv8.2.2765
Problem: Vim9: not all blob operations work. Solution: Run more tests also with Vim9 script and :def functions. Fix what doesn't work.
Diffstat (limited to 'src/vim9execute.c')
-rw-r--r--src/vim9execute.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 026a9ee45..bdf4a02b7 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -2278,8 +2278,18 @@ call_def_function(
if (error)
status = FAIL;
else
- status = blob_set_range(tv_dest->vval.v_blob,
- n1, n2, tv);
+ {
+ long bloblen = blob_len(tv_dest->vval.v_blob);
+
+ if (check_blob_index(bloblen,
+ n1, TRUE, FALSE) == FAIL
+ || check_blob_range(bloblen,
+ n1, n2, FALSE) == FAIL)
+ status = FAIL;
+ else
+ status = blob_set_range(
+ tv_dest->vval.v_blob, n1, n2, tv);
+ }
}
}