summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2010-09-04 11:01:27 +0200
committerBruno Haible <bruno@clisp.org>2010-09-04 11:01:27 +0200
commit60b4ba664df4642893c35ae81dd47ff3396d40ec (patch)
tree89a3c0aafd220067c77080578349bc26271eb2ba
parent9f0cd590f76f5e5e942fbd90b253c90ca7c80699 (diff)
downloadgnulib-60b4ba664df4642893c35ae81dd47ff3396d40ec.tar.gz
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.
-rw-r--r--ChangeLog7
-rwxr-xr-xgnulib-tool17
-rwxr-xr-xposix-modules17
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 <stefano.lattarini@gmail.com> (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 <eggert@cs.ucla.edu>
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.