From 68452177ca4cda4a9d5f93892e437447cf9404c8 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 12 Apr 2021 21:21:02 +0200 Subject: patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate Problem: Vim9: blob tests for legacy and Vim9 script are separate. Solution: Add CheckLegacyAndVim9Success(). Make blob index assign work. --- src/blob.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/blob.c') diff --git a/src/blob.c b/src/blob.c index 8d260f172b..d758beb19d 100644 --- a/src/blob.c +++ b/src/blob.c @@ -336,6 +336,28 @@ blob_slice_or_index( return OK; } +/* + * Set bytes "n1" to "n2" (inclusive) in "dest" to the value of "src". + * Caller must make sure "src" is a blob. + * Returns FAIL if the number of bytes does not match. + */ + int +blob_set_range(blob_T *dest, long n1, long n2, typval_T *src) +{ + int il, ir; + + if (n2 - n1 + 1 != blob_len(src->vval.v_blob)) + { + emsg(_("E972: Blob value does not have the right number of bytes")); + return FAIL; + } + + ir = 0; + for (il = n1; il <= n2; il++) + blob_set(dest, il, blob_get(src->vval.v_blob, ir++)); + return OK; +} + /* * "remove({blob})" function */ -- cgit v1.2.3