Based on work by Jonathan Nieder. Closes: #697017 Signed-off-by: Ben Hutchings <b...@decadent.org.uk> --- scripts/functions | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/scripts/functions b/scripts/functions index 33fddcf..2da6173 100644 --- a/scripts/functions +++ b/scripts/functions @@ -103,24 +103,27 @@ load_modules() # lilo compatibility parse_numeric() { case $1 in - "") - return + *:*) + # Does it match /[0-9]*:[0-9]*/? + minor=${1#*:} + major=${1%:*} + case $major$minor in + *[!0-9]*) + # No. + return + ;; + esac ;; - /*) + "" | *[!A-Fa-f0-9]*) + # "", "/*", etc. return ;; - [0-9]*:[0-9]*) - minor=$(( ${1#*:} )) - major=$(( ${1%:*} )) - ;; - [A-Fa-f0-9]*) + *) + # [A-Fa-f0-9]* value=$(( 0x${1} )) minor=$(( ${value} % 256 )) major=$(( ${value} / 256 )) ;; - *) - return - ;; esac if command -v udevd >/dev/null 2>&1; then -- Ben Hutchings Life would be so much easier if we could look at the source code.
signature.asc
Description: This is a digitally signed message part