missing: if GNU tar exists but fails when called, give up
authorStefano Lattarini <stefano.lattarini@gmail.com>
Sun, 30 Oct 2011 09:12:28 +0000 (10:12 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 22 Dec 2011 11:08:35 +0000 (12:08 +0100)
* lib/missing: If the code trying to run GNU tar is reached,
don't continue if the invoked GNU tar program fails, as there
is little point in doing so (and can even be confusing and
counter-productive).

ChangeLog
lib/missing

index 2d2bcdb..92297ec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 
+       missing: if GNU tar exists but fails when called, give up
+       * lib/missing: If the code trying to run GNU tar is reached,
+       don't continue if the invoked GNU tar program fails, as there
+       is little point in doing so (and can even be confusing and
+       counter-productive).
+
+2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
        missing: miscellaneous fixlets
        * lib/missing: Some shells, such as Solaris or FreeBSD /bin/sh,
        warn about missing programs before performing redirections.
index df2faf6..411123f 100755 (executable)
@@ -320,14 +320,13 @@ WARNING: \`$1' is $msg.  You should only need it if
 
   tar*)
     shift
-    # We have already tried tar in the generic part.
-    # Look for gnutar/gtar before invocation to avoid ugly error
-    # messages.
+    # We have already tried tar in the generic part.  So try with GNU tar.
+    # Look for gnutar/gtar before invocation to avoid ugly error messages.
     if (gnutar --version) > /dev/null 2>&1; then
-       gnutar "$@" && exit 0
+       exec gnutar "$@"
     fi
     if (gtar --version) > /dev/null 2>&1; then
-       gtar "$@" && exit 0
+       exec gtar "$@"
     fi
     firstarg=$1
     if shift; then