## Also note that we do not handle micro versions.
get_version ()
{
- vers=`$1 --version 2> /dev/null`
- [ x"$vers" = x ] && return 1
-
- echo "$vers" | sed -n -e '1 s/.* \([0-9][0-9\.]*\).*/\1/p'
+ vers=`($1 --version) 2> /dev/null` && expr "$vers" : '[^
+]* \([0-9][0-9.]*\).*'
}
## $1 = version string, eg "2.59"
printf '%s' "(using $uprog0=$uprog) "
fi
- found=`command -v $uprog 2> /dev/null`
- [ x"$found" = x ] && return 1
-
- have_version=`get_version $uprog`
-
- ## We should really check the return status of get_version.
- ## Non-zero means a broken executable, otherwise we failed to
- ## parse the version string.
- [ x"$have_version" = x ] && return 4
+ command -v $uprog > /dev/null || return 1
+ have_version=`get_version $uprog` || return 4
have_maj=`major_version $have_version`
need_maj=`major_version $2`