patch 8.2.3284: no error for insert() or remove() changing a locked blob
Problem: No error for insert() or remove() changing a locked blob.
Solution: Check a blob is not locked before changing it. (Sean Dewar,
closes #8696)
diff --git a/src/blob.c b/src/blob.c
index 57fe58b..2138ac0 100644
--- a/src/blob.c
+++ b/src/blob.c
@@ -412,16 +412,19 @@
* "remove({blob})" function
*/
void
-blob_remove(typval_T *argvars, typval_T *rettv)
+blob_remove(typval_T *argvars, typval_T *rettv, char_u *arg_errmsg)
{
+ blob_T *b = argvars[0].vval.v_blob;
int error = FALSE;
long idx;
long end;
+ if (b != NULL && value_check_lock(b->bv_lock, arg_errmsg, TRUE))
+ return;
+
idx = (long)tv_get_number_chk(&argvars[1], &error);
if (!error)
{
- blob_T *b = argvars[0].vval.v_blob;
int len = blob_len(b);
char_u *p;