gnulib-tool: protect against CDPATH
authorJim Meyering <meyering@fb.com>
Mon, 28 Oct 2013 23:08:16 +0000 (16:08 -0700)
committerJim Meyering <meyering@fb.com>
Tue, 29 Oct 2013 00:05:26 +0000 (17:05 -0700)
* gnulib-tool: Many "cd" built-in functions print a directory name
to stdout when CDPATH is set, e.g.,
  $ bash -c 'CDPATH=/; cd tmp'
  /tmp
Unset it, when possible.  Prompted by a comment from Bruce Korb.

ChangeLog
gnulib-tool

index 6fca0c7..0c564db 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2013-10-28  Jim Meyering  <meyering@fb.com>
 
+       gnulib-tool: protect against CDPATH
+       * gnulib-tool: Many "cd" built-in functions print a directory name
+       to stdout when CDPATH is set, e.g.,
+         $ bash -c 'CDPATH=/; cd tmp'
+         /tmp
+       Unset it, when possible.  Prompted by a comment from Bruce Korb.
+
        maint.mk: restore functionality removed by recent change...
        Sunday's change, v0.0-8062-g6b24f60, may have appeared correct from
        the context of a shallow-cloned gnulib repository: "git describe"
index ed693e0..669931c 100755 (executable)
@@ -898,6 +898,9 @@ if test "X$1" = "X--no-reexec"; then
   shift
 fi
 
+# Unset CDPATH.  Otherwise, output from 'cd dir' can surprise callers.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
 # Command-line option processing.
 # Removes the OPTIONS from the arguments. Sets the variables:
 # - mode            one of: list, find, import, add-import, remove-import,