From: Paul Eggert Date: Sat, 9 Dec 2006 06:58:27 +0000 (+0000) Subject: * gzexe.in (mktemp_status): New var, used to see whether X-Git-Tag: v1.3.12~35 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=e24b8e7680c834b5075c3563097c542a4062723d;p=debian%2Fgzip * gzexe.in (mktemp_status): New var, used to see whether mktemp is a known command. Use this instead of confounding mktemp's existence with its success. --- diff --git a/ChangeLog b/ChangeLog index 06c9ee5..c3c767b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2006-12-08 Paul Eggert + * gzexe.in (mktemp_status): New var, used to see whether + mktemp is a known command. Use this instead of confounding + mktemp's existence with its success. + * zdiff.in: Remove first line containing ":". This follows up on the SEDCMD fix of 2006-12-01. * zforce.in: Likewise. diff --git a/gzexe.in b/gzexe.in index ed9ac71..a27ec5c 100644 --- a/gzexe.in +++ b/gzexe.in @@ -79,6 +79,8 @@ trap 'res=$? (exit $res); exit $res ' 0 1 2 3 5 10 13 15 +mktemp_status= + for i do case $i in -*) file=./$i;; @@ -114,8 +116,15 @@ for i do 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 @@ -133,7 +142,7 @@ for i do if test $decomp -eq 0; then (cat <<'EOF' && #!/bin/sh -skip=43 +skip=44 tab=' ' nl=' @@ -149,9 +158,11 @@ trap 'res=$? (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 @@ -182,7 +193,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])