123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/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
|