#!mupfel
#
# @(#) exopt.mup
# @(#) Stefan Eissing, 12. April 1993
#
#
# Extrahiere die angegebene OPT-Datei aus default.opt. Sind keine
# Parameter angegeben, dann werden alle in default.opt enthaltenen
# Dateien entpackt.
#
# BUGS: arbeitet nur im aktuellen Verzeichnis


extract_file()
{
	while read line
	do
		if [ Aend = A"$line" ]
		then
			return
		fi

		echo $line

	done >> $1
}


extract_all()
{
	lastline=unknown.opt

	while read line
	do
		if [ Abegin = A"$line" ]
		then
			echo extracting $1 >&2
			extract_file $lastline
		fi

		lastline=$line
	done <default.opt

	rm -v default.opt
}


extract()
{
	echo extracting $1 >&2

	while read line
	do
		if [ A"$1" = A"$line" ]
		then
			if read line
			then
				extract_file $1
			else
				echo No begin after $1 >&2
				exit 99
			fi
		else
			# normale Zeile, die auch erhalten bleiben soll
			echo $line
		fi

	done <default.opt >tmp.opt

	if [ -s tmp.opt ]
	then
		mv -v tmp.opt default.opt
	else
		rm -v default.opt
	fi
}


if [ $# -gt 0 ]
then
	for i in $*
	do
		extract $i
	done
else
	extract_all
fi

