# that I haven't read yet
if (@f == 0) {
foreach $ref (DXMsg::get_all()) {
- if ($ref->to eq $self->call && $ref->private && !$ref->read) {
+ if ($ref->to eq $self->call && $ref->private && !$ref->read && !$ref->delete) {
push @f, $ref->msgno;
last;
}
@body = $ref->read_msg_body;
push @out, @body;
- # mark my privates as read
- if ($ref->private && $self->call eq $ref->to && $ref->read == 0) {
- $ref->read(1);
+ # mark it as read
+ unless ($ref->private && $ref->to ne $self->call) {
+ $ref->read($ref->read() + 1);
$ref->store(\@body); # note call by reference!
# if it had a read receipt on it generate a new message to send back to
- # the sender.
+ # the sender.
if ($ref->rrreq) {
my $sub = $ref->subject;
$sub = "Re: $sub" unless $sub =~ /^\s*re:/i;
DXMsg::add_dir($rref);
DXMsg::queue_msg(0);
}
- }
- # remember this one as the last one read
- $self->lastread($msgno);
-
-
+ # remember this one as the last one read
+ $self->lastread($msgno);
+ }
}
return (1, @out);