#!/bin/sh
#
#  get uudecode items from inputlist
#   -o is name of output file  will be appended to
#   - is from standard input
#
#   all boils down to reading standard input anyway
#   and writing standard output
#
CMD=$0 ;
if [ "$*". = "." ]
then 
exec $CMD -
fi
argc=0
for a in $*
do
    if [ ${next-0} -eq 1 ]
    then
	out=$a;
	next=2;
	continue;
    fi
    case $a in
	-o) next=`expr ${next-0} + 1 `;;
	*)  if [ -r $a ]
	    then
		args="${args}${args+"" ""}$a" 
	    else
		echo $CMD: "Can't read $a" 1>&2
		status=1;
	    fi
	    argc=`expr ${argc-0} + 1`
	    ;;
    esac
done

if [ ${out-.} != "." ]
then
    $CMD ${args-} >>$out
    exit $?
fi

if [ ${argc-0} -ne 0 -a "${args-.}" = "." ]
then
exit $status
fi

/usr/bin/awk 'BEGIN{
    on=0;
    mode=0;
    copy=0;
    ALLOW=" !\"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`";
}
/^BEGIN/{mode = 1 ; copy = 1 ;next; }
/^END/{if ( mode  == 1 ) copy = 0 ;next;}
mode == 1 && copy == 1 {print $0 ; next; };
mode == 1 { next;}
NF == 3 && /^begin /{print $0;on=1;next;};
on == 1 && /^end/{on=0;if( space) printf("\n");printf("%s\n",$0);next;}
on == 1 {
    if( length($0) == 0 ){
	space=1;
	next;
    }else space=0;
}
on != 1{ next;}
on != 1 ||/^--/||/^ /||/[a-z{|}]/{next;}
{print $0;}
' $args
status=`expr ${status-0} + $?`
exit $status
