package Email::Folder::Ezmlm;
use strict;
use Carp;
use Email::Folder::Maildir;
use base 'Email::Folder::Maildir';
# we're a little complicit, just redefining an internal method, but
# that's fine, we maintain both piles :)
sub _what_is_there {
my $self = shift;
my $dir = $self->{_file};
croak "$dir does not exist" unless (-e $dir);
croak "$dir is not an ezmlm archive" unless (-d $dir);
croak "$dir is not an ezmlm archive" unless (-e "$dir/archive" && -d "$dir/archive");
my $num;
if (my $fh = IO::File->new("$dir/num")) {
($num) = (<$fh> =~ m/^(\d+)/);
}
$self->{_messages} = [ map {
sprintf '%s/archive/%d/%02d', $dir, int $_ / 100, $_ % 100
} 1..$num ];
}
1;