# On Ultrix, /bin/sh is too buggy, change the first line to: #!/bin/sh5
-# Copyright (C) 1998, 2002, 2004, 2006-2007, 2010-2017 Free Software
+# Copyright (C) 1998, 2002, 2004, 2006-2007, 2010-2018 Free Software
# Foundation, Inc.
# Copyright (C) 1993 Jean-loup Gailly
type mktemp >/dev/null 2>&1
mktemp_status=$?
fi
+ case $dir in
+ */) ;;
+ *) dir=$dir/;;
+ esac
if test $mktemp_status -eq 0; then
- tmp=`TMPDIR=$dir mktemp`
+ tmp=`mktemp "${dir}gzexeXXXXXXXXX"`
else
- tmp=$dir/gzexe$$
+ tmp=${dir}gzexe$$
fi && { cp -p "$file" "$tmp" 2>/dev/null || cp "$file" "$tmp"; } || {
res=$?
printf >&2 '%s\n' "$0: cannot copy $file"
(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
- gztmpdir=`mktemp -d`
+ gztmpdir=`mktemp -d "${TMPDIR}gztmpXXXXXXXXX"`
else
- gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir
+ gztmpdir=${TMPDIR}gztmp$$; mkdir $gztmpdir
fi || { (exit 127); exit 127; }
gztmp=$gztmpdir/$0
printf >&2 '%s\n' "$0: $tmp: cannot chmod"
continue
}
- ln -f "$file" "$file~" 2>/dev/null || mv -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=$?
printf >&2 '%s\n' "$0: cannot backup $i as $i~"
continue