projects
/
debian
/
gzip
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
try Paul Eggert's upstream fix for the mingw compilation problem in 1.9
[debian/gzip]
/
gzexe.in
diff --git
a/gzexe.in
b/gzexe.in
index 282e3854afa3e542c7d5b4aa9e40fabb692fcb51..6c6118389b7140680f33a21a001ab9137acdaee9 100644
(file)
--- a/
gzexe.in
+++ b/
gzexe.in
@@
-13,7
+13,7
@@
# On Ultrix, /bin/sh is too buggy, change the first line to: #!/bin/sh5
# On Ultrix, /bin/sh is too buggy, change the first line to: #!/bin/sh5
-# Copyright (C) 1998, 2002, 2004, 2006-2007, 2010-201
6
Free Software
+# Copyright (C) 1998, 2002, 2004, 2006-2007, 2010-201
8
Free Software
# Foundation, Inc.
# Copyright (C) 1993 Jean-loup Gailly
# Foundation, Inc.
# Copyright (C) 1993 Jean-loup Gailly
@@
-37,15
+37,16
@@
nl='
IFS=" $tab$nl"
version='gzexe (gzip) @VERSION@
IFS=" $tab$nl"
version='gzexe (gzip) @VERSION@
-Copyright (C) 2007, 2011-201
6
Free Software Foundation, Inc.
+Copyright (C) 2007, 2011-201
7
Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the terms of
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>.
+the GNU General Public License <http
s
://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
Written by Jean-loup Gailly.'
usage="Usage: $0 [OPTION] FILE...
There is NO WARRANTY, to the extent permitted by law.
Written by Jean-loup Gailly.'
usage="Usage: $0 [OPTION] FILE...
-Rename each FILE with a compressed version of itself, renaming FILE to FILE~.
+Replace each executable FILE with a compressed version of itself.
+Make a backup FILE~ of the old version of FILE.
-d Decompress each FILE instead of compressing it.
--help display this help and exit
-d Decompress each FILE instead of compressing it.
--help display this help and exit
@@
-58,15
+59,15
@@
res=0
while :; do
case $1 in
-d) decomp=1; shift;;
while :; do
case $1 in
-d) decomp=1; shift;;
- --h*)
exec echo "$usage"
;;
- --v*)
exec echo "$version"
;;
+ --h*)
printf '%s\n' "$usage" || exit 1; exit
;;
+ --v*)
printf '%s\n' "$version" || exit 1; exit
;;
--) shift; break;;
*) break;;
esac
done
if test $# -eq 0; then
--) shift; break;;
*) break;;
esac
done
if test $# -eq 0; then
-
echo >&2
"$0: missing operand
+
printf >&2 '%s\n'
"$0: missing operand
Try \`$0 --help' for more information."
exit 1
fi
Try \`$0 --help' for more information."
exit 1
fi
@@
-86,29
+87,29
@@
for i do
esac
if test ! -f "$file" || test ! -r "$file"; then
res=$?
esac
if test ! -f "$file" || test ! -r "$file"; then
res=$?
-
echo >&2
"$0: $i is not a readable regular file"
+
printf >&2 '%s\n'
"$0: $i is not a readable regular file"
continue
fi
if test $decomp -eq 0; then
if sed -e 1d -e 2q "$file" | grep "^skip=[0-9][0-9]*$" >/dev/null; then
continue
fi
if test $decomp -eq 0; then
if sed -e 1d -e 2q "$file" | grep "^skip=[0-9][0-9]*$" >/dev/null; then
-
echo >&2
"$0: $i is already gzexe'd"
+
printf >&2 '%s\n'
"$0: $i is already gzexe'd"
continue
fi
fi
if test -u "$file"; then
continue
fi
fi
if test -u "$file"; then
-
echo >&2
"$0: $i has setuid permission, unchanged"
+
printf >&2 '%s\n'
"$0: $i has setuid permission, unchanged"
continue
fi
if test -g "$file"; then
continue
fi
if test -g "$file"; then
-
echo >&2
"$0: $i has setgid permission, unchanged"
+
printf >&2 '%s\n'
"$0: $i has setgid permission, unchanged"
continue
fi
case /$file in
*/basename | */bash | */cat | */chmod | */cp | \
continue
fi
case /$file in
*/basename | */bash | */cat | */chmod | */cp | \
- */dirname | */e
cho | */e
xpr | */gzip | \
- */ln | */mkdir | */mktemp | */mv | */rm | \
+ */dirname | */expr | */gzip | \
+ */ln | */mkdir | */mktemp | */mv | */
printf | */
rm | \
*/sed | */sh | */sleep | */test | */tail)
*/sed | */sh | */sleep | */test | */tail)
-
echo >&2
"$0: $i might depend on itself"; continue;;
+
printf >&2 '%s\n'
"$0: $i might depend on itself"; continue;;
esac
dir=`dirname "$file"` || dir=$TMPDIR
esac
dir=`dirname "$file"` || dir=$TMPDIR
@@
-118,13
+119,17
@@
for i do
type mktemp >/dev/null 2>&1
mktemp_status=$?
fi
type mktemp >/dev/null 2>&1
mktemp_status=$?
fi
+ case $dir in
+ */) ;;
+ *) dir=$dir/;;
+ esac
if test $mktemp_status -eq 0; then
if test $mktemp_status -eq 0; then
- tmp=`
TMPDIR=$dir mktemp
`
+ tmp=`
mktemp "${dir}gzexeXXXXXXXXX"
`
else
else
- tmp=$
dir/
gzexe$$
+ tmp=$
{dir}
gzexe$$
fi && { cp -p "$file" "$tmp" 2>/dev/null || cp "$file" "$tmp"; } || {
res=$?
fi && { cp -p "$file" "$tmp" 2>/dev/null || cp "$file" "$tmp"; } || {
res=$?
-
echo >&2
"$0: cannot copy $file"
+
printf >&2 '%s\n'
"$0: cannot copy $file"
continue
}
if test -w "$tmp"; then
continue
}
if test -w "$tmp"; then
@@
-133,7
+138,7
@@
for i do
writable=0
chmod u+w "$tmp" || {
res=$?
writable=0
chmod u+w "$tmp" || {
res=$?
-
echo >&2
"$0: cannot chmod $tmp"
+
printf >&2 '%s\n'
"$0: cannot chmod $tmp"
continue
}
fi
continue
}
fi
@@
-156,10
+161,15
@@
trap 'res=$?
(exit $res); exit $res
' 0 1 2 3 5 10 13 15
(exit $res); exit $res
' 0 1 2 3 5 10 13 15
+case $TMPDIR in
+ / | /*/) ;;
+ /*) TMPDIR=$TMPDIR/;;
+ *) TMPDIR=/tmp/;;
+esac
if type mktemp >/dev/null 2>&1; then
if type mktemp >/dev/null 2>&1; then
- gztmpdir=`mktemp -d`
+ gztmpdir=`mktemp -d
"${TMPDIR}gztmpXXXXXXXXX"
`
else
else
- gztmpdir=
/tmp/
gztmp$$; mkdir $gztmpdir
+ gztmpdir=
${TMPDIR}
gztmp$$; mkdir $gztmpdir
fi || { (exit 127); exit 127; }
gztmp=$gztmpdir/$0
fi || { (exit 127); exit 127; }
gztmp=$gztmpdir/$0
@@
-169,7
+179,7
@@
case $0 in
*/*) gztmp=$gztmpdir/`basename "$0"`;;
esac || { (exit 127); exit 127; }
*/*) gztmp=$gztmpdir/`basename "$0"`;;
esac || { (exit 127); exit 127; }
-case `
echo X
| tail -n +1 2>/dev/null` in
+case `
printf 'X\n'
| tail -n +1 2>/dev/null` in
X) tail_n=-n;;
*) tail_n=;;
esac
X) tail_n=-n;;
*) tail_n=;;
esac
@@
-179,13
+189,13
@@
if tail $tail_n +$skip <"$0" | gzip -cd > "$gztmp"; then
(sleep 5; rm -fr "$gztmpdir") 2>/dev/null &
"$gztmp" ${1+"$@"}; res=$?
else
(sleep 5; rm -fr "$gztmpdir") 2>/dev/null &
"$gztmp" ${1+"$@"}; res=$?
else
-
echo >&2
"Cannot decompress $0"
+
printf >&2 '%s\n'
"Cannot decompress $0"
(exit 127); res=127
fi; exit $res
EOF
gzip -cv9 "$file") > "$tmp" || {
res=$?
(exit 127); res=127
fi; exit $res
EOF
gzip -cv9 "$file") > "$tmp" || {
res=$?
-
echo >&2
"$0: compression not possible for $i, file unchanged."
+
printf >&2 '%s\n'
"$0: compression not possible for $i, file unchanged."
continue
}
continue
}
@@
-197,29
+207,32
@@
EOF
skip=[0-9] | skip=[0-9][0-9] | skip=[0-9][0-9][0-9])
eval "$skip_line";;
esac
skip=[0-9] | skip=[0-9][0-9] | skip=[0-9][0-9][0-9])
eval "$skip_line";;
esac
- case `
echo X
| tail -n +1 2>/dev/null` in
+ case `
printf 'X\n'
| tail -n +1 2>/dev/null` in
X) tail_n=-n;;
*) tail_n=;;
esac
tail $tail_n +$skip "$file" | gzip -cd > "$tmp" || {
res=$?
X) tail_n=-n;;
*) tail_n=;;
esac
tail $tail_n +$skip "$file" | gzip -cd > "$tmp" || {
res=$?
-
echo >&2
"$0: $i probably not in gzexe format, file unchanged."
+
printf >&2 '%s\n'
"$0: $i probably not in gzexe format, file unchanged."
continue
}
fi
test $writable -eq 1 || chmod u-w "$tmp" || {
res=$?
continue
}
fi
test $writable -eq 1 || chmod u-w "$tmp" || {
res=$?
-
echo >&2
"$0: $tmp: cannot chmod"
+
printf >&2 '%s\n'
"$0: $tmp: cannot chmod"
continue
}
continue
}
- ln -f "$file" "$file~" || {
+ ln -f "$file" "$file~" 2>/dev/null || {
+ # Hard links may not work. Fall back on rm+cp so that $file always exists.
+ rm -f "$file~" && cp -p "$file" "$file~"
+ } || {
res=$?
res=$?
-
echo >&2
"$0: cannot backup $i as $i~"
+
printf >&2 '%s\n'
"$0: cannot backup $i as $i~"
continue
}
mv -f "$tmp" "$file" || {
res=$?
continue
}
mv -f "$tmp" "$file" || {
res=$?
-
echo >&2
"$0: cannot rename $tmp to $i"
+
printf >&2 '%s\n'
"$0: cannot rename $tmp to $i"
continue
}
tmp=
continue
}
tmp=