At Friday 11 June 2010, Jim Meyering wrote:
> > diff --git a/tests/init.sh b/tests/init.sh
> > index ef0957c..4eb4a95 100644
> > --- a/tests/init.sh
> > +++ b/tests/init.sh
> > @@ -97,12 +97,15 @@ else
> > for re_shell_ in "${CONFIG_SHELL:-no_shell}" /bin/sh bash
> > dash zsh pdksh fail do
> > test "$re_shell_" = no_shell && continue
> > - test "$re_shell_" = fail && skip_ failed to find an
> > adequate shell + if test "$re_shell_" = fail; then
> > + echo "$0: skipped test: failed to find an adequate
> > shell" 1>&2 + exit 77
>
> Did you deliberately choose not to use the "(exit 77); exit 77"
> idiom from Exit()? If so, why?
I thought the '(exit ...); exit ...' idiom to be necessary only when
an exit trap is in place, to ensure that the code in the trap is
passed the correct exit status in $?. Did I miss something?
> Did you consider simply hoisting the definitions
> of Exit and/or ME_ to precede their first use?
No, I just tried to fix the problem with the minimal amount of changes.
Anyway, the absence of a decent shell and the failure of the exec call
are very very unlikely situations, so IMHO it's not a big deal if the
program name (`$0' instead of `$ME_') is suboptimal in the error
messages associated with those situations.
Of course, feel free to edit my changes as you see fit.
Thanks for your review,
Stefano