diff -urk.orig mkdep.orig/mkdep.gcc.sh mkdep/mkdep.gcc.sh --- mkdep.orig/mkdep.gcc.sh 2002-02-26 16:00:47 +0300 +++ mkdep/mkdep.gcc.sh 2003-05-25 19:57:33 +0400 @@ -68,13 +68,19 @@ exit 1 fi -um=`umask` -umask 022 +DTMP= +exit_handler() +{ + local rc=$? + trap - EXIT + [ -z "$DTMP" ] || rm -rf -- "$DTMP" + exit $rc +} -TMP=`mktemp /tmp/mkdep.XXXXXXXXXX` || exit 1 +trap exit_handler EXIT HUP INT QUIT PIPE TERM -umask $um -trap 'rm -f $TMP ; trap 2 ; kill -2 $$' 1 2 3 13 15 +DTMP=`/bin/mktemp -dt mkdep.XXXXXXXXXX` || exit $? +TMP=$DTMP/mkdep if [ x$pflag = x ]; then ${CC:-cc} -M "$@" | sed -e 's; \./; ;g' > $TMP @@ -84,7 +90,6 @@ if [ $? != 0 ]; then echo 'mkdep: compile failed.' - rm -f $TMP exit 1 fi @@ -92,17 +97,14 @@ cat $TMP >> $D if [ $? != 0 ]; then echo 'mkdep: append failed.' - rm -f $TMP exit 1 fi else - mv -f $TMP $D + mv -f -- $TMP $D if [ $? != 0 ]; then echo 'mkdep: rename failed.' - rm -f $TMP exit 1 fi fi -rm -f $TMP exit 0