#!/bin/sh
: '$Id$'

: Resolve name clashes in the files on the argument list. If these
: files reside in another directory, a copy is made in the current
: directory. If not, it is overwritten. Never do this in a source
: directory! A list of the new files is produced on standard output.

UTIL_BIN=$UTIL_HOME/bin

trap "rm -f tmp$$ a.out nmclash.* longnames clashes" 0 1 2 3 15

: first find out if we have to resolve problems with identifier significance.

cat > nmclash.c <<'EOF'
/* Accepted if many characters of long names are significant */
abcdefghijklmnopr() { }
abcdefghijklmnopq() { }
main() { }
EOF
if $CC nmclash.c
then	: no identifier significance problem
	for i in $*
	do
		echo $i
	done
else
	$UTIL_BIN/prid -l7 $* > longnames

	: remove code generating routines from the clashes list.
	: code generating routine names start with C_.
	: also remove names starting with flt_.

	sed '/^C_/d' < longnames | sed '/^flt_/d' > tmp$$
	$UTIL_BIN/cclash -c -l7 tmp$$ > clashes
	for i in $*
	do
		$UTIL_BIN/cid -Fclashes < $i > tmp$$
		n=`basename $i .xxx`
		if cmp -s $n tmp$$
		then
			rm -f tmp$$
		else
			mv tmp$$ $n
		fi
		echo $n
	done
fi
