bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: init.sh: fix EXEEXT shims to work also for names like test-prog


From: Jim Meyering
Subject: Re: init.sh: fix EXEEXT shims to work also for names like test-prog
Date: Sun, 21 Feb 2010 18:00:34 +0100

Jim Meyering wrote:

> Jim Meyering wrote:
>> Per discussion last week, here's a patch for init.sh.
>> The main goal is to allow the EXEEXT shim business to work
>> also for program names like test-program, (containing a hyphen).
>>
>> I would have liked to skip the invocation of $re_shell_ -c ...
>> if the current shell is deemed adequate, but determining that is
>> a rats nest, since it would require use of eval, and Solaris'
>> /bin/sh handles failing "eval" very poorly.  If someone knows how to
>> make that more efficient (yet still clean and reliable) for common,
>> working shells like dash-or-bash-as-/bin/sh, I'd welcome the tip.
>>
>> I suppose it could test e.g., $BASH_VERSION, if bash has supported
>> the desired features for long enough, or even do version number comparisons,
>> but the latter seems not worthwhile.
>>
>>>From 63509688315d9a8c8e60d8e776736b454f3019f5 Mon Sep 17 00:00:00 2001
>> From: Jim Meyering <address@hidden>
>> Date: Sun, 21 Feb 2010 17:47:43 +0100
>> Subject: [PATCH] init.sh: fix EXEEXT shims to work also for names like 
>> test-prog
>>
>> * tests/init.sh: Re-exec a better shell, when needed.
>> If the current shell lacks support for posix $(...), an init.sh-using
>> test will now try to find a shell that supports that.  If EXEEXT is
>> nonempty, we also require support for hyphen-in-alias-name and shell
>> substitutions like ${var#glob}.  Failure to find such a shell results
>> in a skipped test.
>
> Whoops.
> I'd written this change, but hadn't amended it in yet:
>
> diff --git a/tests/init.sh b/tests/init.sh
> index 4debc65..0c84d7b 100644
> --- a/tests/init.sh
> +++ b/tests/init.sh
> @@ -87,6 +87,8 @@ else
>    done
>  fi
>
> +shopt -s expand_aliases

Not quite.
Might as well guard it:

diff --git a/tests/init.sh b/tests/init.sh
index 4debc65..3154f59 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -87,6 +87,8 @@ else
   done
 fi

+test -n "$EXEEXT" && shopt -s expand_aliases
+
 # We use a trap below for cleanup.  This requires us to go through
 # hoops to get the right exit status transported through the handler.
 # So use `Exit STATUS' instead of `exit STATUS' inside of the tests.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]