#!/usr/bin/perl
code="";
$st=0;
while(<>){
    if ( getnewfile($code,$name) ){
	if ($st==0){
	    open(HLDR "> $name");
            $st=1;
	}

}
sub getStart{
#    print "getstart:$_[0]!$_[1]!\n";
   if ($_ =~ /^$_[1]/){
        return 1;
   }
   else{
       return 0;
   }
}


sub getSubject{
    #  print "Subject:!$_[0]!\n";
    return 2 if /^subject:\s+\S*iso\S*$_[1]/i;
    return 2 if /^subject:\s+$_[1]/i;
    return 1 if /^subject:\s+/i;
    return 0;
}

sub getMimeMark{
    #print  "getMime <<$_[0]\n  $_[1]\n$_[2]\n>>\n" if $st==10;
    return 2 if /^$_[2]/;
    #print STDERR "getMime: not 2\n" if $st==6;
    return 1 if /$_[1]/i;
    #print STDERR "getMime:0\n" if $st==6;
    return 0;
}
    
	
sub getWLn{
    #print "getWLn:$st:<<$_\n  $_[1]\n" if $st==11;
    return 2 if /^$_[1]/;
    return 1 if /^\s*\n$/;
    return 0;
}

sub getFilledLn{
    #print "getFilledLn:$st:<<$_\n  $_[1]\n" if $st==13;
    return 2 if /^$_[1]/;
    #print "getFilledLn:0\n" if $st==13;
    return 0 if /^\s*\n$/;
    return 0 if /^--/;
    #print "getFilledLn:1\n" if $st==13;
    return 1;
}


sub idoutstart{
    $dir="$_[0]/$_[1]";
    if (-d $dir) {
	unlink "<$dir/*>";
    }
    else {
	mkdir $dir;
    }
    open(IDHLDR, "> $dir/id") || die "couldn't create $dir/id";
}

sub idoutput{
    print IDHLDR $_[0];
}

sub idoutclose{
    close IDHLDR;
}

sub fileoutstart{
    open(FLHDLR, "| mimencode -u  > $_[0]/$_[1]/$_[0].tar.gz") || die "couldn't create $dir/id";
}

sub fileoutput{
    print FLHDLR $_[0];
}

sub fileoutclose{
    close FLHDLR;
}


sub getDate{ 
#     print STDERR "getDate:$_";
     open(PIPEUDATE, "date --date=\'$_[1]\' +%s |");
     read(PIPEUDATE, $limdate, 20);
     close(PIPEUDATE);

     if ($_ =~ /^Date:\s*\w\w\w,\s+(\d{1,2}\s\w{3}\s\d{4}\s\d\d:\d\d:\d\d)/){
	$auxdate = $1;
        open(PIPEUDATE, "date --date=\'$auxdate\' +%s |");
        read(PIPEUDATE, $udate, 20);
        close(PIPEUDATE);
	#print STDERR "Dates<<$_[1]!$limdate!!!$auxdate!$udate>>\n";
	return 1 unless ($udate < $limdate);
		#print "Date ok!\n";
	return 2;
     }
     else{
            #	print "getDate: failed\n";
        return 0;
     } 
}


