Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
changeset 594:4babcf9abc1a
farray.sh: farray_del() now accepts general index value
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 18 Sep 2024 16:13:51 +0200 |
| parents | f29f53749a1c |
| children | 24f4dccaea45 |
| files | share/local-bsdtools/farray.sh tests/farray-array.t |
| diffstat | 2 files changed, 60 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/share/local-bsdtools/farray.sh Wed Sep 18 15:57:31 2024 +0200 +++ b/share/local-bsdtools/farray.sh Wed Sep 18 16:13:51 2024 +0200 @@ -617,11 +617,7 @@ local __farr_token __farr_gvrname __farr_len __farr_idx _farr_array_get_meta "$@" - __farr_index="${2-}" - [ -z "${__farr_index}" ] && _farr_fatal "no valid index given" - # make it to a number - __farr_index=$((__farr_index + 0)) - + _farr_make_index __farr_index "${2-}" "${__farr_len}" # check index range if [ \( "${__farr_index}" -lt 1 \) -o \( "${__farr_index}" -gt ${__farr_len} \) ]; then _farr_fatal "array index out of bounds"
--- a/tests/farray-array.t Wed Sep 18 15:57:31 2024 +0200 +++ b/tests/farray-array.t Wed Sep 18 16:13:51 2024 +0200 @@ -177,6 +177,65 @@ $ check_no_array_artifacts +Deleting +======== + + $ farray_create TEST 0 1 2 '3 4 5' $'" 678" \\\'910 ' 11 + $ farray_del TEST 1 + $ farray_debug TEST + DEBUG: array `TEST' has length 5 + DEBUG: its contents: + DEBUG: 1: `1' + DEBUG: 2: `2' + DEBUG: 3: `3 4 5' + DEBUG: 4: `" 678" \'910 ' + DEBUG: 5: `11' + $ farray_destroy TEST + $ check_no_array_artifacts + + $ farray_create TEST 0 1 2 '3 4 5' $'" 678" \\\'910 ' 11 + $ farray_del TEST 0 + $ farray_debug TEST + DEBUG: array `TEST' has length 5 + DEBUG: its contents: + DEBUG: 1: `0' + DEBUG: 2: `1' + DEBUG: 3: `2' + DEBUG: 4: `3 4 5' + DEBUG: 5: `" 678" \'910 ' + $ farray_destroy TEST + $ check_no_array_artifacts + + $ farray_create TEST 0 1 2 '3 4 5' $'" 678" \\\'910 ' 11 + $ farray_del TEST 4 + $ farray_debug TEST + DEBUG: array `TEST' has length 5 + DEBUG: its contents: + DEBUG: 1: `0' + DEBUG: 2: `1' + DEBUG: 3: `2' + DEBUG: 4: `" 678" \'910 ' + DEBUG: 5: `11' + $ farray_destroy TEST + $ check_no_array_artifacts + + $ farray_create TEST 0 1 2 '3 4 5' $'" 678" \\\'910 ' 11 + $ ( farray_del TEST "" ) + ERROR: array index out of bounds + [70] + + $ farray_destroy TEST + $ check_no_array_artifacts + + $ farray_create TEST 0 1 2 '3 4 5' $'" 678" \\\'910 ' 11 + $ ( farray_del TEST 7 ) + ERROR: array index out of bounds + [70] + + $ farray_destroy TEST + $ check_no_array_artifacts + + Splicing ========
