From 963525558da1fe1ad948b696962da66072d97284 Mon Sep 17 00:00:00 2001 From: Yee Cheng Chin Date: Mon, 9 Mar 2020 04:23:09 -0700 Subject: [PATCH] Fix configure not parsing Vim version correctly Fix the script to parse Vim version correct as version.h had a refactor. Also, make sure if the output version string doesn't look right, we will fail the configure script so we know something is wrong after merging from Vim upstream. Fix #1011 --- src/auto/configure | 12 +++++++++--- src/configure.ac | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/auto/configure b/src/auto/configure index 2f05f610f0..0dd54ced65 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -14903,10 +14903,16 @@ $as_echo "using default" >&6; } fi - vim_short_version_string=`grep 'define.*VIM_VERSION_SHORT' $srcdir/version.h|sed -E -e 's/.*"([0-9.]*)".*/\1/'` + vim_major_version_string=`grep -m 1 'define.*VIM_VERSION_MAJOR' $srcdir/version.h|sed -E -e 's/^.*([0-9]+).*/\1/'` + vim_minor_version_string=`grep -m 1 'define.*VIM_VERSION_MINOR' $srcdir/version.h|sed -E -e 's/^.*([0-9]+).*/\1/'` snapshot=`grep -C2 "Add new patch number below this line" $srcdir/version.c|tail -1|sed -E -e 's/^ *([0-9]+),.*/\1/'` - vim_short_version_string="$vim_short_version_string.$snapshot" - XCODEFLAGS="$XCODEFLAGS VIM_SHORT_VERSION_STRING=$vim_short_version_string" + vim_short_version_string="$vim_major_version_string.$vim_minor_version_string.$snapshot" + + if echo "$vim_short_version_string" | grep -q "^\d\+\.\d\+\.\d\+$"; then + XCODEFLAGS="$XCODEFLAGS VIM_SHORT_VERSION_STRING=$vim_short_version_string" + else + as_fn_error $? "could not parse Vim version: $vim_short_version_string" "$LINENO" 5 + fi fi diff --git a/src/configure.ac b/src/configure.ac index cddc78201e..9c527c8092 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -4543,10 +4543,16 @@ if test "x$MACOS_X" = "xyes"; then [ AC_MSG_RESULT(using default) ]) dnl Set CFBundleShortVersionString of Info.plist - vim_short_version_string=`grep 'define.*VIM_VERSION_SHORT' $srcdir/version.h|sed -E -e 's/.*"([[0-9.]]*)".*/\1/'` + vim_major_version_string=`grep -m 1 'define.*VIM_VERSION_MAJOR' $srcdir/version.h|sed -E -e 's/^.*([[0-9]]+).*/\1/'` + vim_minor_version_string=`grep -m 1 'define.*VIM_VERSION_MINOR' $srcdir/version.h|sed -E -e 's/^.*([[0-9]]+).*/\1/'` snapshot=`grep -C2 "Add new patch number below this line" $srcdir/version.c|tail -1|sed -E -e 's/^ *([[0-9]]+),.*/\1/'` - vim_short_version_string="$vim_short_version_string.$snapshot" - XCODEFLAGS="$XCODEFLAGS VIM_SHORT_VERSION_STRING=$vim_short_version_string" + vim_short_version_string="$vim_major_version_string.$vim_minor_version_string.$snapshot" + + if echo "$vim_short_version_string" | grep -q "^\d\+\.\d\+\.\d\+$"; then + XCODEFLAGS="$XCODEFLAGS VIM_SHORT_VERSION_STRING=$vim_short_version_string" + else + AC_MSG_ERROR(could not parse Vim version: $vim_short_version_string) + fi AC_SUBST(XCODEFLAGS) fi