projects
/
debian
/
gzip
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Wabi patch already merged in new upstream version
[debian/gzip]
/
gzexe.in
diff --git
a/gzexe.in
b/gzexe.in
index e59b5fc38c9a4a53f93f8be65e5eb097b077e965..3076b6808ba2ec22070da32c6b3963f711921931 100644
(file)
--- a/
gzexe.in
+++ b/
gzexe.in
@@
-13,7
+13,8
@@
# 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 Free Software Foundation
+# Copyright (C) 1998, 2002, 2004, 2006-2007, 2010-2018 Free Software
+# Foundation, Inc.
# Copyright (C) 1993 Jean-loup Gailly
# This program is free software; you can redistribute it and/or modify
# Copyright (C) 1993 Jean-loup Gailly
# This program is free software; you can redistribute it and/or modify
@@
-36,15
+37,16
@@
nl='
IFS=" $tab$nl"
version='gzexe (gzip) @VERSION@
IFS=" $tab$nl"
version='gzexe (gzip) @VERSION@
-Copyright (C) 2007, 20
09-2010
Free Software Foundation, Inc.
+Copyright (C) 2007, 20
11-2018
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
@@
-52,27
+54,20
@@
Rename each FILE with a compressed version of itself, renaming FILE to FILE~.
Report bugs to <bug-gzip@gnu.org>."
Report bugs to <bug-gzip@gnu.org>."
-
-bindir=@bindir@
-case $1 in
---__bindir) bindir=${2?}; shift; shift;;
-esac
-PATH=$bindir:$PATH
-
decomp=0
res=0
while :; do
case $1 in
-d) decomp=1; shift;;
decomp=0
res=0
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
@@
-92,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
@@
-124,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 -t gzexeXXXXXX
`
+ 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
@@
-139,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
@@
-162,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
t
`
+ 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
@@
-175,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
@@
-185,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
}
@@
-203,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=