# HG changeset patch # User Franz Glasner # Date 1728300385 -7200 # Node ID cf0f18d3d41b75b007a89fb030cbd70dbab9be4f # Parent 8f1583faf9ea81a35051af2c1d32b4793f7af456 farray.sh: more thorough checks when numbers are octal diff -r 8f1583faf9ea -r cf0f18d3d41b share/local-bsdtools/farray.sh --- a/share/local-bsdtools/farray.sh Mon Oct 07 12:57:29 2024 +0200 +++ b/share/local-bsdtools/farray.sh Mon Oct 07 13:26:25 2024 +0200 @@ -140,24 +140,24 @@ case "$1" in '') # empty is not allowed - return 1 - ;; + return 1;; +|-) # just the sign is not allowed - return 1 - ;; + return 1;; *) # FALL THROUGH ;; esac # here we can trim the optional sign safely case "${1#[-+]}" in + 0*[!01234567]*) + # non-octal + return 1;; *[!0123456789]*) - return 1 - ;; + # non-decimal + return 1;; *) - return 0 - ;; + return 0;; esac } diff -r 8f1583faf9ea -r cf0f18d3d41b tests/farray-misc.t --- a/tests/farray-misc.t Mon Oct 07 12:57:29 2024 +0200 +++ b/tests/farray-misc.t Mon Oct 07 13:26:25 2024 +0200 @@ -25,9 +25,10 @@ Octal - $ _farr_is_decimal_number 012345678901234567890 - $ _farr_is_decimal_number -012345678901234567890 - $ _farr_is_decimal_number +12345678901234567890 + $ _farr_is_decimal_number 01234567012345670 + $ _farr_is_decimal_number -01234567012345670 + $ _farr_is_decimal_number +01234567012345670 + Invalid ------- @@ -48,6 +49,12 @@ [1] $ _farr_is_decimal_number 0123456789abcdef [1] + $ _farr_is_decimal_number 01234567890 + [1] + $ _farr_is_decimal_number -01234567890 + [1] + $ _farr_is_decimal_number +01234567890 + [1] Index Checks