#!/bin/sh
# unansi
# can't cope with function pointer prototypes...
#
# * replaces fn prototypes with forward declarations
# * junks void arg in fn delarators
# * reformats fn declarators: return type, id/args, "{" on separate lines
# * parses arg list with ansi2knr to remove ansi-style typing
#
# uses:	unproto.sed, re-ansi.sed, ansi2knr

LOG=proto.log
if [ -f $LOG ]
then	mv -f $LOG $LOG.was
else	touch $LOG
fi

for i in `ls *.[ch]`
do	sed -f unproto.sed $i > $i.proto
	sed -f re-ansi.sed $i.proto > $i.re-ansi
	ansi2knr $i.re-ansi $i.knr
	if ( cmp -s $i $i.knr )
	then	echo $i: no change
		rm $i.proto $i.re-ansi $i.knr
	else	echo $i: converted
		echo $i >> $LOG
		diff $i $i.knr >> $LOG
		echo >> $LOG
		mv -f $i Archive/$i.orig
		mv $i.knr $i
		rm $i.proto $i.re-ansi
	fi
done
