version 1.6
[debian/gzip] / gzexe.in
index 139ec615c2e2b74dfcd2df2593d4adc2685697e0..e45856387cde13c4b50f3297362f52976b3ccc5c 100644 (file)
--- a/gzexe.in
+++ b/gzexe.in
 # On Ultrix, /bin/sh is too buggy, change the first line to: #!/bin/sh5
 
 
-# Copyright (C) 1998, 2002, 2004, 2006 Free Software Foundation
+# Copyright (C) 1998, 2002, 2004, 2006, 2007 Free Software Foundation
 # Copyright (C) 1993 Jean-loup Gailly
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 
 # This program is distributed in the hope that it will be useful,
@@ -36,24 +36,28 @@ nl='
 IFS=" $tab$nl"
 
 version='gzexe (gzip) @VERSION@
-Copyright (C) 2006 Free Software Foundation, Inc.
+Copyright (C) 2007, 2011-2013 Free Software Foundation, Inc.
 This is free software.  You may redistribute copies of it under the terms of
 the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
 There is NO WARRANTY, to the extent permitted by law.
 
 Written by Jean-loup Gailly.'
 
-usage='Usage: gzexe [OPTION] FILE...
+usage="Usage: $0 [OPTION] FILE...
 Rename each FILE with a compressed version of itself, renaming FILE to FILE~.
 
   -d             Decompress each FILE instead of compressing it.
       --help     display this help and exit
       --version  output version information and exit
 
-Report bugs to <bug-gzip@gnu.org>.'
+Report bugs to <bug-gzip@gnu.org>."
 
 
-PATH="BINDIR:$PATH"
+bindir=@bindir@
+case $1 in
+--__bindir) bindir=${2?}; shift; shift;;
+esac
+PATH=$bindir:$PATH
 
 decomp=0
 res=0
@@ -74,12 +78,13 @@ Try \`$0 --help' for more information."
 fi
 
 tmp=
-trap '
-  res=$?
+trap 'res=$?
   test -n "$tmp" && rm -f "$tmp"
   (exit $res); exit $res
 ' 0 1 2 3 5 10 13 15
 
+mktemp_status=
+
 for i do
   case $i in
   -*) file=./$i;;
@@ -105,18 +110,25 @@ for i do
     continue
   fi
   case /$file in
-  */basename | */cat | */chmod | */cp | \
+  */basename | */bash | */cat | */chmod | */cp | \
   */dirname | */echo | */expr | */gzip | \
-  */ln | */mkdir | */mktemp | */mv | */rm | */rmdir | \
+  */ln | */mkdir | */mktemp | */mv | */rm | \
   */sed | */sh | */sleep | */test | */tail)
-    echo >&2 "$0: $i would depend on itself"; continue;;
+    echo >&2 "$0: $i might depend on itself"; continue;;
   esac
 
   dir=`dirname "$file"` || dir=$TMPDIR
   test -d "$dir" && test -w "$dir" && test -x "$dir" || dir=/tmp
   test -n "$tmp" && rm -f "$tmp"
-  tmp=`TMPDIR=$dir mktemp -t gzexeXXXXXX` || tmp=$dir/gzexe$$
-  cp -p "$file" "$tmp" 2>/dev/null || cp "$file" "$tmp" || {
+  if test -z "$mktemp_status"; then
+    type mktemp >/dev/null 2>&1
+    mktemp_status=$?
+  fi
+  if test $mktemp_status -eq 0; then
+    tmp=`TMPDIR=$dir mktemp -t gzexeXXXXXX`
+  else
+    tmp=$dir/gzexe$$
+  fi && { cp -p "$file" "$tmp" 2>/dev/null || cp "$file" "$tmp"; } || {
     res=$?
     echo >&2 "$0: cannot copy $file"
     continue
@@ -134,7 +146,7 @@ for i do
   if test $decomp -eq 0; then
     (cat <<'EOF' &&
 #!/bin/sh
-skip=43
+skip=44
 
 tab='  '
 nl='
@@ -145,20 +157,21 @@ umask=`umask`
 umask 77
 
 gztmpdir=
-trap '
-  res=$?
+trap 'res=$?
   test -n "$gztmpdir" && rm -fr "$gztmpdir"
   (exit $res); exit $res
 ' 0 1 2 3 5 10 13 15
 
-gztmpdir=`(mktemp -dt) 2>/dev/null` ||
-  { gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir; } ||
-  { (exit 127); exit 127; }
+if type mktemp >/dev/null 2>&1; then
+  gztmpdir=`mktemp -dt`
+else
+  gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir
+fi || { (exit 127); exit 127; }
 
 gztmp=$gztmpdir/$0
 case $0 in
 -* | */*'
-') mkdir -p "$gztmp" && rmdir "$gztmp";;
+') mkdir -p "$gztmp" && rm -r "$gztmp";;
 */*) gztmp=$gztmpdir/`basename "$0"`;;
 esac || { (exit 127); exit 127; }
 
@@ -184,7 +197,7 @@ EOF
 
   else
     # decompression
-    skip=43
+    skip=44
     skip_line=`sed -e 1d -e 2q "$file"`
     case $skip_line in
     skip=[0-9] | skip=[0-9][0-9] | skip=[0-9][0-9][0-9])