diff src/blob.c @ 24450:3e1886f1e875 v8.2.2765

patch 8.2.2765: Vim9: not all blob operations work Commit: https://github.com/vim/vim/commit/0e3ff1919603ee4c4a347fdf761dbdbdeb068015 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Apr 14 20:35:23 2021 +0200 patch 8.2.2765: Vim9: not all blob operations work Problem: Vim9: not all blob operations work. Solution: Run more tests also with Vim9 script and :def functions. Fix what doesn't work.
author Bram Moolenaar <Bram@vim.org>
date Wed, 14 Apr 2021 20:45:04 +0200
parents 602e528a8e43
children 53216e87f21c
line wrap: on
line diff
--- a/src/blob.c
+++ b/src/blob.c
@@ -337,6 +337,36 @@ blob_slice_or_index(
 }
 
 /*
+ * Check if "n1"- is a valid index for a blobl with length "bloblen".
+ */
+    int
+check_blob_index(long bloblen, varnumber_T n1, int is_range, int quiet)
+{
+    if (n1 < 0 || n1 > bloblen)
+    {
+	if (!quiet)
+	    semsg(_(e_blobidx), n1);
+	return FAIL;
+    }
+    return OK;
+}
+
+/*
+ * Check if "n1"-"n2" is a valid range for a blob with length "bloblen".
+ */
+    int
+check_blob_range(long bloblen, varnumber_T n1, varnumber_T n2, int quiet)
+{
+    if (n2 < 0 || n2 >= bloblen || n2 < n1)
+    {
+	if (!quiet)
+	    semsg(_(e_blobidx), n2);
+	return FAIL;
+    }
+    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.