Mercurial > vim
diff src/blob.c @ 24434:602e528a8e43 v8.2.2757
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Commit: https://github.com/vim/vim/commit/68452177ca4cda4a9d5f93892e437447cf9404c8
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Apr 12 21:21:02 2021 +0200
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 12 Apr 2021 21:30:04 +0200 |
parents | aa150abca273 |
children | 3e1886f1e875 |
line wrap: on
line diff
--- a/src/blob.c +++ b/src/blob.c @@ -337,6 +337,28 @@ blob_slice_or_index( } /* + * 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 */ void