vc-list-files: avoid failure when /bin/sh is dash
authorJim Meyering <meyering@redhat.com>
Tue, 21 Jul 2009 16:24:22 +0000 (18:24 +0200)
committerJim Meyering <meyering@redhat.com>
Tue, 21 Jul 2009 16:24:22 +0000 (18:24 +0200)
* build-aux/vc-list-files: Avoid a shell portability problem with dash.
On some Debian based systems, /bin/sh is a symlink to dash, and running
this command would omit the "/" following each 'tests' prefix:
  dash -x build-aux/vc-list-files -C . tests
That is because bash and dash work differently:
  $ for i in bash dash; do $i -c 'a=odd; a=ok b=$a; echo '$i' $b'; done
  bash ok
  dash odd

ChangeLog
build-aux/vc-list-files

index 6a89b40aa44eec315533f294f9e57a06bf8e1035..b471369c0a1463b625b944a10da8e15e6fbe3a22 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2009-07-21  Jim Meyering  <meyering@redhat.com>
+
+       vc-list-files: avoid failure when /bin/sh is dash
+       * build-aux/vc-list-files: Avoid a shell portability problem with dash.
+       On some Debian based systems, /bin/sh is a symlink to dash, and running
+       this command would omit the "/" following each 'tests' prefix:
+         dash -x build-aux/vc-list-files -C . tests
+       That is because bash and dash work differently:
+         $ for i in bash dash; do $i -c 'a=odd; a=ok b=$a; echo '$i' $b'; done
+         bash ok
+         dash odd
+
 2009-07-21  Eric Blake  <ebb9@byu.net>
 
        dup2-tests: test previous patch
index 9376e3dc2f1dce96e7b22d8e3ac4f799c8a72baa..cc716e9c3500809a6143a8b18b316a15880938a8 100755 (executable)
@@ -2,7 +2,7 @@
 # List version-controlled file names.
 
 # Print a version string.
-scriptversion=2009-04-25.13; # UTC
+scriptversion=2009-07-21.16; # UTC
 
 # Copyright (C) 2006-2009 Free Software Foundation, Inc.
 
@@ -74,7 +74,7 @@ test "x$dir" = x && dir=.
 if test -d .git; then
   test "x$dir" = x. \
     && dir= sed_esc= \
-    || dir="$dir/" sed_esc=`echo "$dir"|sed 's,\([\\/]\),\\\\\1,g'`
+    || { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; }
   # Ignore git symlinks - either they point into the tree, in which case
   # we don't need to visit the target twice, or they point somewhere
   # else (often into a submodule), in which case the content does not