Pádraig Brady wrote: > On 05/08/2012 10:02 AM, Jim Meyering wrote: >> diff --git a/tests/init.sh b/tests/init.sh >> index ae86714..d5cd294 100644 >> --- a/tests/init.sh >> +++ b/tests/init.sh >> @@ -207,6 +207,9 @@ else >> fi >> fi >> >> +# If this is bash, turn off all aliases. >> +test -n "$BASH_VERSION" && unalias -a >> + >> test -n "$EXEEXT" && shopt -s expand_aliases > > Looks good.
Thanks for the review. > I was surprised to see that aliases are significant > (due to the expand_aliases above). > Why are aliases needed rather than using shell functions for example? That deserves a comment, which I'm about to add. The gnulib commit that introduced that shopt/expand_aliases use 87e7216daf261421a6acb43115812cccefd5dc5d mentioned a problem with names like test-prog (note the hyphen) because prior to that change we were using functions to support the PROG_NAME-to-PROG_NAME.exe mapping required for transparent EXEEXT support. Simon reported a test failure due to the first test-PROG name, test-acos, which prompted this thread where Ralf Wildenhues suggested to use aliases instead: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20648/focus=20676 ================================================== Here's the proposed comment-adding patch: >From 98d01cdfdb2f966fa7aaf9facfaaac0a4c5a3fe0 Mon Sep 17 00:00:00 2001 From: Jim Meyering <[email protected]> Date: Tue, 8 May 2012 11:54:26 +0200 Subject: [PATCH] init.sh: explain why EXEEXT support uses aliases rather than functions * tests/init.sh: Add a comment. --- ChangeLog | 3 +++ tests/init.sh | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index 268fbe5..e202346 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2012-05-08 Jim Meyering <[email protected]> + init.sh: explain why EXEEXT support uses aliases rather than functions + * tests/init.sh: Add a comment. + init.sh: don't let bash aliases interfere with tests * tests/init.sh: Undefine any pre-defined aliases if the selected shell is bash. This avoids problems for those who alias standard commands to diff --git a/tests/init.sh b/tests/init.sh index d5cd294..f525a7c 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -210,6 +210,11 @@ fi # If this is bash, turn off all aliases. test -n "$BASH_VERSION" && unalias -a +# Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to +# PROG_NAME.exe), we want to support hyphen-containing names like test-acos. +# That is part of the shell-selection test above. Why use aliases rather +# than functions? Because support for hyphen-containing aliases is more +# widespread than that for hyphen-containing function names. test -n "$EXEEXT" && shopt -s expand_aliases # Enable glibc's malloc-perturbing option. -- 1.7.10.1.487.ga3935e6
