add CTY-3304
[spider.git] / cmd / read.pl
index fbd243cf3513a326653f8dfe9d0588c5941fb558..076e8dde7dd2ce277ff890d298f5e54b88d1c755 100644 (file)
@@ -3,7 +3,7 @@
 #
 # Copyright (c) Dirk Koopman G1TLH
 #
-# $Id$
+#
 #
 
 my ($self, $line) = @_;
@@ -17,7 +17,7 @@ my $ref;
 # 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;
                }
@@ -41,13 +41,13 @@ for $msgno (@f) {
        @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;
@@ -62,12 +62,12 @@ for $msgno (@f) {
                        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);
+
+