projects
/
debian
/
gzip
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update to modern debian/copyright format
[debian/gzip]
/
gzexe.in
diff --git
a/gzexe.in
b/gzexe.in
index 0acd3bbb4deb8bfb3e3fae4265ecd26bb24ac420..3076b6808ba2ec22070da32c6b3963f711921931 100644
(file)
--- a/
gzexe.in
+++ b/
gzexe.in
@@
-13,12
+13,13
@@
# 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
# it under the terms of the GNU General Public License as published by
# 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,
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
@@
-36,15
+37,16
@@
nl='
IFS=" $tab$nl"
version='gzexe (gzip) @VERSION@
IFS=" $tab$nl"
version='gzexe (gzip) @VERSION@
-Copyright (C) 2007 Free Software Foundation, Inc.
+Copyright (C) 2007
, 2011-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,23
+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>."
-
-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
@@
-88,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
@@
-120,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
@@
-135,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
@@
-158,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
@@
-171,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
@@
-181,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
}
@@
-199,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=