Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
changeset 591:a7301675c481
farray.sh: farray_splice() now uses the new _farr_make_index()
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 18 Sep 2024 14:51:45 +0200 |
| parents | ce29bad1fd3b |
| children | 88191982522d |
| files | share/local-bsdtools/farray.sh |
| diffstat | 1 files changed, 4 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/share/local-bsdtools/farray.sh Wed Sep 18 14:51:27 2024 +0200 +++ b/share/local-bsdtools/farray.sh Wed Sep 18 14:51:45 2024 +0200 @@ -709,16 +709,10 @@ __farr_r_len=0 fi - if [ -z "${__farr_index}" ]; then - __farr_index=$((__farr_l_len + 1)) - else - _farr_is_decimal_number "${__farr_index}" || _farr_fatal "given index is not a valid number" - if [ "${__farr_index}" -le 0 ]; then - __farr_index=$((__farr_l_len + __farr_index)) - fi - # NOTE: index value array_length + 1 is allowed: splice at the end - [ \( "${__farr_index}" -lt 1 \) -o \( "${__farr_index}" -gt "$((__farr_l_len + 1))" \) ] && _farr_fatal "index out of range" - fi + _farr_make_index __farr_index "${__farr_index}" "${__farr_l_len}" + # NOTE: index value array_length + 1 is allowed: splice at the end + [ \( "${__farr_index}" -lt 1 \) -o \( "${__farr_index}" -gt "$((__farr_l_len + 1))" \) ] && _farr_fatal "index out of range" + # also check the given length if [ -z "${__farr_length}" ]; then __farr_length="$((__farr_l_len - __farr_index + 1))"
