diff options
| author | Bram Moolenaar <Bram@vim.org> | 2021-04-14 20:35:23 +0200 |
|---|---|---|
| committer | Bram Moolenaar <Bram@vim.org> | 2021-04-14 20:35:23 +0200 |
| commit | 0e3ff1919603ee4c4a347fdf761dbdbdeb068015 (patch) | |
| tree | db3dc3df238da3a1c44116827796157cdd3346f0 /src/eval.c | |
| parent | b47bed2f7ada4dfae78f76f27473b83507e40315 (diff) | |
| download | vim-git-8.2.2765.tar.gz | |
patch 8.2.2765: Vim9: not all blob operations workv8.2.2765
Problem: Vim9: not all blob operations work.
Solution: Run more tests also with Vim9 script and :def functions. Fix what
doesn't work.
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/eval.c b/src/eval.c index 99768ee28..d8607f2be 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1175,12 +1175,9 @@ get_lval( lp->ll_n1 = (long)tv_get_number(&var1); clear_tv(&var1); - if (lp->ll_n1 < 0 - || lp->ll_n1 > bloblen - || (lp->ll_range && lp->ll_n1 == bloblen)) + if (check_blob_index(bloblen, lp->ll_n1, lp->ll_range, quiet) + == FAIL) { - if (!quiet) - semsg(_(e_blobidx), lp->ll_n1); clear_tv(&var2); return NULL; } @@ -1188,14 +1185,9 @@ get_lval( { lp->ll_n2 = (long)tv_get_number(&var2); clear_tv(&var2); - if (lp->ll_n2 < 0 - || lp->ll_n2 >= bloblen - || lp->ll_n2 < lp->ll_n1) - { - if (!quiet) - semsg(_(e_blobidx), lp->ll_n2); + if (check_blob_range(bloblen, lp->ll_n1, lp->ll_n2, quiet) + == FAIL) return NULL; - } } lp->ll_blob = lp->ll_tv->vval.v_blob; lp->ll_tv = NULL; |
