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

Stefano Garzarella posted 1 patch 3 years, 8 months ago
Test docker-quick@centos7 failed
Test FreeBSD failed
Test docker-mingw@fedora failed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200821163312.98184-1-sgarzare@redhat.com
There is a newer version of this series
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] configure: silence 'shift' error message in version_ge()
Posted by Stefano Garzarella 3 years, 8 months ago
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

Let's skip it if there are no more arguments.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
---
v2:
- do not shift if there are no more arguments [Peter]
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure b/configure
index 4e5fe33211..5f5f370e2c 100755
--- a/configure
+++ b/configure
@@ -229,7 +229,7 @@ version_ge () {
         set x $local_ver1
         local_first=${2-0}
         # shift 2 does nothing if there are less than 2 arguments
-        shift; shift
+        shift; test $# -gt 0 && shift
         local_ver1=$*
         set x $local_ver2
         # the second argument finished, the first must be greater or equal
-- 
2.26.2


Re: [PATCH v2] configure: silence 'shift' error message in version_ge()
Posted by Philippe Mathieu-Daudé 3 years, 8 months ago
On 8/21/20 6:33 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
> 
> Let's skip it if there are no more arguments.
> 
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> ---
> v2:
> - do not shift if there are no more arguments [Peter]
> ---
>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 4e5fe33211..5f5f370e2c 100755
> --- a/configure
> +++ b/configure
> @@ -229,7 +229,7 @@ version_ge () {
>          set x $local_ver1
>          local_first=${2-0}
>          # shift 2 does nothing if there are less than 2 arguments
> -        shift; shift
> +        shift; test $# -gt 0 && shift
>          local_ver1=$*
>          set x $local_ver2
>          # the second argument finished, the first must be greater or equal
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>


Re: [PATCH v2] configure: silence 'shift' error message in version_ge()
Posted by Eric Blake 3 years, 8 months ago
On 8/21/20 11:33 AM, 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
> 
> Let's skip it if there are no more arguments.
> 
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> ---
> v2:
> - do not shift if there are no more arguments [Peter]
> ---
>   configure | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 4e5fe33211..5f5f370e2c 100755
> --- a/configure
> +++ b/configure
> @@ -229,7 +229,7 @@ version_ge () {
>           set x $local_ver1
>           local_first=${2-0}
>           # shift 2 does nothing if there are less than 2 arguments
> -        shift; shift
> +        shift; test $# -gt 0 && shift


That works.  Or you could go with the shorter one-liner:

shift ${2:+2}

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org


Re: [PATCH v2] configure: silence 'shift' error message in version_ge()
Posted by Stefano Garzarella 3 years, 8 months ago
On Fri, Aug 21, 2020 at 01:18:54PM -0500, Eric Blake wrote:
> On 8/21/20 11:33 AM, 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
> > 
> > Let's skip it if there are no more arguments.
> > 
> > Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> > ---
> > v2:
> > - do not shift if there are no more arguments [Peter]
> > ---
> >   configure | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/configure b/configure
> > index 4e5fe33211..5f5f370e2c 100755
> > --- a/configure
> > +++ b/configure
> > @@ -229,7 +229,7 @@ version_ge () {
> >           set x $local_ver1
> >           local_first=${2-0}
> >           # shift 2 does nothing if there are less than 2 arguments
> > -        shift; shift
> > +        shift; test $# -gt 0 && shift
> 
> 
> That works.  Or you could go with the shorter one-liner:
> 
> shift ${2:+2}

yeah, it is better!

I'll send v3.

Thanks,
Stefano