# HG changeset patch # User Franz Glasner # Date 1726663905 -7200 # Node ID a7301675c48158562e181bdfe8f592d7f3f6b6ae # Parent ce29bad1fd3be7ea5e6097736f47193b98db06c1 farray.sh: farray_splice() now uses the new _farr_make_index() diff -r ce29bad1fd3b -r a7301675c481 share/local-bsdtools/farray.sh --- 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))"