From: Stefano Garzarella <sgarz...@redhat.com> If there are less than 2 arguments in version_ge(), the second 'shift' prints this error: ../configure: line 232: shift: shift count out of range
As Eric suggested, we can use 'shift ${2:+2}' which works out to 'shift 2' if $2 is set, or 'shift' (implicitly shift 1) if $2 is not set. This patch replaces both 'shift; shift' occurrences in version_ge() with 'shift ${2:+2}'. Suggested-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Stefano Garzarella <sgarz...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Message-Id: <20200821203558.10338-1-sgarz...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- configure | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 4e5fe33211..d9ca87fbbb 100755 --- a/configure +++ b/configure @@ -228,15 +228,15 @@ version_ge () { while true; do set x $local_ver1 local_first=${2-0} - # shift 2 does nothing if there are less than 2 arguments - shift; shift + # 'shift 2' if $2 is set, or 'shift' if $2 is not set + shift ${2:+2} local_ver1=$* set x $local_ver2 # the second argument finished, the first must be greater or equal test $# = 1 && return 0 test $local_first -lt $2 && return 1 test $local_first -gt $2 && return 0 - shift; shift + shift ${2:+2} local_ver2=$* done } -- 2.26.2