#!/bin/csh -f

switch (`uname -s``uname -r`)
case SunOS5*:
	breaksw
default:
	exec echo ${0}: does not run on `uname -s` `uname -r`
endsw

while($#argv)
	switch ("$1")
	case -d:
		set DEBUG
#		shift
#		breaksw
# fall through to verbose
	case -v:
		set VERBOSE
		shift
		breaksw
	default:
		set DQ = '"'
		exec echo ${0}: "What do I do with $DQ$1$DQ?"
	endsw
end

set LIMBO = /var/lib/mlists/limbo
set LIMBOL = /var/lib/mlists/*.limbo
set TMP = /tmp/`basename $0`
set TLIMBO = $TMP.limbo
set TLIMBOL = $TMP.limbol

if ($?VERBOSE) echo `date +%T` Collecting addresses from $LIMBO

sed 's;#.*;;' $LIMBO | grep . | sort -u > $TLIMBO

if ($?VERBOSE) echo `date +%T` Collecting addresses from $LIMBOL

sed 's;#.*;;' $LIMBOL | grep . | sort -u > $TLIMBOL

if ($?VERBOSE) echo `date +%T` Determining addresses in $LIMBO not in use

comm -23 $TLIMBO $TLIMBOL > $TMP

if ( -z $TMP) then
   if ($?VERBOSE) echo "   " There are none
else
   echo The following addresses in $LIMBO are no longer needed:
   sed 's;.;    &;' $TMP
endif

# Check for multiple entries (commented and uncommented) for each address in limbo

set EADDRS = `sed 's;#.*;;' $LIMBO | grep @ | sort -u`

if ($?VERBOSE) echo `date +%T` Checking for multiple entries for $#EADDRS addresses

foreach EADDR ( $EADDRS )
    if ($?DEBUG) echo " " $EADDR
    @ EADDRC = `grep "^[#]*$EADDR" $LIMBO | tee $TMP | wc -l`
    if ($EADDRC != 1) then
	if ($?DEBUG) cat $TMP
	if (! $?HDRDONE) then
	    echo Check out multiple entries in $LIMBO for
	    set HDRDONE
	endif
	echo "   " $EADDR
    endif
end

/bin/rm $TMP*
