diff mbox series

[v3] configure: silence 'shift' error message in version_ge()

Message ID 20200821203558.10338-1-sgarzare@redhat.com (mailing list archive)
State New, archived
Headers show
Series [v3] configure: silence 'shift' error message in version_ge() | expand

Commit Message

Stefano Garzarella Aug. 21, 2020, 8:35 p.m. UTC
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 <eblake@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
---
v3:
- use Eric's one-liner solution
v2:
- do not shift if there are no more arguments [Peter]
---
 configure | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Eric Blake Aug. 21, 2020, 8:47 p.m. UTC | #1
On 8/21/20 3:35 PM, Stefano Garzarella wrote:
> 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 <eblake@redhat.com>
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> ---
> v3:
> - use Eric's one-liner solution
> v2:
> - do not shift if there are no more arguments [Peter]
> ---
>   configure | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)

Reviewed-by: Eric Blake <eblake@redhat.com>
diff mbox series

Patch

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
 }