From 60b4ba664df4642893c35ae81dd47ff3396d40ec Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Sat, 4 Sep 2010 11:01:27 +0200 Subject: Set PATH_SEPARATOR the same way autoconf does. * gnulib-tool (func_gnulib_dir): Determine the value of PATH_SEPARATOR the same way autoconf-generated configure scripts do. * posix-modules: Likewise. --- ChangeLog | 7 +++++++ gnulib-tool | 17 ++++++++--------- posix-modules | 17 ++++++++--------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5be2ceb659..c3fdec4849 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-09-04 Stefano Lattarini (tiny change) + + Set PATH_SEPARATOR the same way autoconf does. + * gnulib-tool (func_gnulib_dir): Determine the value of PATH_SEPARATOR + the same way autoconf-generated configure scripts do. + * posix-modules: Likewise. + 2010-09-02 Paul Eggert hash: fix safe_hasher const typo diff --git a/gnulib-tool b/gnulib-tool index b606ad6a68..8168408400 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -372,15 +372,14 @@ func_gnulib_dir () # explicit canonicalization command when $PATH contains no empty fields. self_abspathname= if test "${PATH_SEPARATOR+set}" != set; then - func_tmpdir - { echo "#! /bin/sh"; echo "exit 0"; } > "$tmp"/conf.sh - chmod +x "$tmp"/conf.sh - if (PATH="/nonexistent;$tmp"; conf.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -rf "$tmp" + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } fi if test "$PATH_SEPARATOR" = ";"; then # On Windows, programs are searched in "." before $PATH. diff --git a/posix-modules b/posix-modules index 46de93d260..b93b28381a 100755 --- a/posix-modules +++ b/posix-modules @@ -115,15 +115,14 @@ func_gnulib_dir () # explicit canonicalization command when $PATH contains no empty fields. self_abspathname= if test "${PATH_SEPARATOR+set}" != set; then - func_tmpdir - { echo "#! /bin/sh"; echo "exit 0"; } > "$tmp"/conf.sh - chmod +x "$tmp"/conf.sh - if (PATH="/nonexistent;$tmp"; conf.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -rf "$tmp" + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } fi if test "$PATH_SEPARATOR" = ";"; then # On Windows, programs are searched in "." before $PATH. -- cgit v1.2.1