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))"