summaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/src/eval.c b/src/eval.c
index 1291b364a9..2e2ca23b69 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1319,23 +1319,12 @@ set_var_lval(
if (lp->ll_range && rettv->v_type == VAR_BLOB)
{
- int il, ir;
-
if (lp->ll_empty2)
lp->ll_n2 = blob_len(lp->ll_blob) - 1;
- if (lp->ll_n2 - lp->ll_n1 + 1 != blob_len(rettv->vval.v_blob))
- {
- emsg(_("E972: Blob value does not have the right number of bytes"));
+ if (blob_set_range(lp->ll_blob, lp->ll_n1, lp->ll_n2,
+ rettv) == FAIL)
return;
- }
- if (lp->ll_empty2)
- lp->ll_n2 = blob_len(lp->ll_blob);
-
- ir = 0;
- for (il = lp->ll_n1; il <= lp->ll_n2; il++)
- blob_set(lp->ll_blob, il,
- blob_get(rettv->vval.v_blob, ir++));
}
else
{