#!/bin/sh
# $TOG: process_msg /main/4 1999/09/20 10:33:13 mgreess $
# Script to determine which source files need to have new messages 
# substitued into them and accomplish those substitutions.  The 
# files on the command line will be run thru genmsg, and those 
# files that exhibit actual differences will then be checked out, 
# and really run thru genmsg, and then checked back in.
#
# To use the script, you must scccs get all of the source files you wish
# to process, as well as dtcm.msg and project.set.  When ready, one runs 
# "process_msg *.c".  It will look thru all the .c files, looking to 
# see which ones have unassigned message id's, and check those files out.  
# It will then run those files thru genmsg, and regenerate the dtcm.msg 
# file.  You must delta in the processed .c files as well as project.set 
# and dtcm.msg.  A bunch of old .msg files will remain in the directory.
# The old message file will be stored in dtcm.msg.orig.

rm -f *.new *.msg >/dev/null
filelist=""
null=""
for file in $* 
do
	genmsg -l project.set $file >/dev/null
	diff $file $file.new   >/dev/null
	if [ $? != 0 ]  
	then
		filelist="$filelist $file"
	fi
done

echo $filelist

if [ "$filelist" = "$null" ] 
then
	echo "No files need to be updated.  Exiting."
	exit
fi

# Now that we have the list of files that actually need to 
# be changed, check to see if any of them are already checked 
# out.  If they are, then quit with an error, else run 
# genmsg to change them.

checkout=`sccs tell`

if [ "$checkout" ] 
then
	for file in $filelist 
	do
		for newfile in $checkout 
		do
			if [ "$file" = "$newfile" ] 
			then
				echo "The file $file needs to be changed, but is already checked out.  Exiting"
				exit
			fi
		done
	done
fi


sccs edit $filelist project.set dtcm.msg


for file in $filelist 
do
	genmsg -c NL_COMMENT -l project.set $file >/dev/null
	mv $file.new $file
	mv project.set.new project.set
done

# regenerate the message file for the application

mv -f dtcm.msg dtcm.msg.orig

genmsg -c NL_COMMENT -d dtcm.msg $* 

#sccs unedit $filelist project.set dtcm.msg
#rm *.new *.msg
