Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
changeset 731:cf0f18d3d41b
farray.sh: more thorough checks when numbers are octal
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 07 Oct 2024 13:26:25 +0200 |
| parents | 8f1583faf9ea |
| children | d92e7203a14d |
| files | share/local-bsdtools/farray.sh tests/farray-misc.t |
| diffstat | 2 files changed, 18 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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 }
--- 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
