* lib/missing: If the code trying to run GNU tar is reached, it means that the previous attempt to run the default tar program has failed, very likely producing some error message. At this point, just running GNU tar without further comments might be confusing. --- ChangeLog | 9 +++++++++ lib/missing | 13 +++++++------ 2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog index 88d25a4..06f3abd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2011-10-30 Stefano Lattarini <stefano.lattar...@gmail.com> + missing: inform the user if GNU tar is called + * lib/missing: If the code trying to run GNU tar is reached, it + means that the previous attempt to run the default tar program + has failed, very likely producing some error message. At this + point, just running GNU tar without further comments might be + confusing. + +2011-10-30 Stefano Lattarini <stefano.lattar...@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 diff --git a/lib/missing b/lib/missing index 8312be8..34c3239 100755 --- a/lib/missing +++ b/lib/missing @@ -322,12 +322,13 @@ WARNING: \`$1' is $msg. You should only need it if shift # 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 - exec gnutar "$@" - fi - if (gtar --version) > /dev/null 2>&1; then - exec gtar "$@" - fi + for cmd in gnutar gtar; do + ($cmd --version) > /dev/null 2>&1 || continue + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + Trying to use GNU tar (\"$cmd\") instead ..." + exec $cmd "$@" + done firstarg=$1 if shift; then case $firstarg in -- 1.7.2.3