From: Jim Meyering Date: Tue, 26 Sep 2006 09:46:35 +0000 (+0000) Subject: * src/groups.sh: When invoked with 0 or 1 argument, just exec "id". X-Git-Tag: v6.3~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bbab62fd272c6ae29f4f46dce81cc10d33c9ffea;p=thirdparty%2Fcoreutils.git * src/groups.sh: When invoked with 0 or 1 argument, just exec "id". Rewrite to avoid using temporary, $status. --- diff --git a/ChangeLog b/ChangeLog index 7586f54626..c9e9522120 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-09-26 Jim Meyering + * src/groups.sh: When invoked with 0 or 1 argument, just exec "id". + Rewrite to avoid using temporary, $status. + * NEWS: Mention the bug fix. * src/groups.sh: Don't hide a write failure. Reported by Iain Calder . diff --git a/src/groups.sh b/src/groups.sh index dc64d12f1e..43395d710d 100755 --- a/src/groups.sh +++ b/src/groups.sh @@ -53,18 +53,17 @@ case $# in * ) ;; esac -if [ $# -eq 0 ]; then - id -Gn - fail=$? -else - for name in "$@"; do - groups=`id -Gn -- $name` - status=$? - if test $status = 0; then - echo $name : $groups || fail=1 - else - fail=$status - fi - done -fi +# With fewer than two arguments, simply exec "id". +case $# in + 0|1) exec id -Gn "$@" ;; +esac + +# With more, we need a loop, and be sure to exit nonzero upon failure. +for name in "$@"; do + if groups=`id -Gn -- $name`; then + echo $name : $groups || fail=1 + else + fail=1 + fi +done exit $fail