Mercurial > vim
comparison src/eval.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 | d2f9bdd938fa |
children | 53216e87f21c |
comparison
equal
deleted
inserted
replaced
24449:ca0d84e008e5 | 24450:3e1886f1e875 |
---|---|
1173 else | 1173 else |
1174 // is number or string | 1174 // is number or string |
1175 lp->ll_n1 = (long)tv_get_number(&var1); | 1175 lp->ll_n1 = (long)tv_get_number(&var1); |
1176 clear_tv(&var1); | 1176 clear_tv(&var1); |
1177 | 1177 |
1178 if (lp->ll_n1 < 0 | 1178 if (check_blob_index(bloblen, lp->ll_n1, lp->ll_range, quiet) |
1179 || lp->ll_n1 > bloblen | 1179 == FAIL) |
1180 || (lp->ll_range && lp->ll_n1 == bloblen)) | 1180 { |
1181 { | |
1182 if (!quiet) | |
1183 semsg(_(e_blobidx), lp->ll_n1); | |
1184 clear_tv(&var2); | 1181 clear_tv(&var2); |
1185 return NULL; | 1182 return NULL; |
1186 } | 1183 } |
1187 if (lp->ll_range && !lp->ll_empty2) | 1184 if (lp->ll_range && !lp->ll_empty2) |
1188 { | 1185 { |
1189 lp->ll_n2 = (long)tv_get_number(&var2); | 1186 lp->ll_n2 = (long)tv_get_number(&var2); |
1190 clear_tv(&var2); | 1187 clear_tv(&var2); |
1191 if (lp->ll_n2 < 0 | 1188 if (check_blob_range(bloblen, lp->ll_n1, lp->ll_n2, quiet) |
1192 || lp->ll_n2 >= bloblen | 1189 == FAIL) |
1193 || lp->ll_n2 < lp->ll_n1) | |
1194 { | |
1195 if (!quiet) | |
1196 semsg(_(e_blobidx), lp->ll_n2); | |
1197 return NULL; | 1190 return NULL; |
1198 } | |
1199 } | 1191 } |
1200 lp->ll_blob = lp->ll_tv->vval.v_blob; | 1192 lp->ll_blob = lp->ll_tv->vval.v_blob; |
1201 lp->ll_tv = NULL; | 1193 lp->ll_tv = NULL; |
1202 break; | 1194 break; |
1203 } | 1195 } |