]> git.eshelyaron.com Git - emacs.git/commitdiff
Simplify autogen.sh version checking
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 20 Jun 2017 15:18:08 +0000 (08:18 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 20 Jun 2017 15:18:55 +0000 (08:18 -0700)
* autogen.sh (get_version): Simplify and make more reliable
by using expr rather than echo | sed.  Check exit status of program.
Run program in subshell in case it cannot be executed.
(check_version): Check exit status of command rather than its output.
Check return status of get_version.

autogen.sh

index 9fdd492456f4d6d580dfde865302079137e47728..76fde9e18d233d6e2a427fcf8fcf20582b1dd728 100755 (executable)
@@ -45,10 +45,8 @@ autoconf_min=`sed -n 's/^ *AC_PREREQ(\([0-9\.]*\)).*/\1/p' configure.ac`
 ## 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"
@@ -84,15 +82,8 @@ check_version ()
         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`