X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fmsg.pl;h=93a10133e036381a184ca80c40b06441e85e43c4;hb=ba0bc47c95759a369af81fb19556c48261530a79;hp=0f68779b61d70803a34f4736a5607e2b7fe250af;hpb=8aa1d223307c50d8bbaa0ed4ef915f8c7365bc6e;p=spider.git diff --git a/cmd/msg.pl b/cmd/msg.pl index 0f68779b..93a10133 100644 --- a/cmd/msg.pl +++ b/cmd/msg.pl @@ -8,7 +8,7 @@ # my ($self, $line) = @_; -return (1, $self->msg('e5')) if $self->priv < 9; +return (1, $self->msg('e5')) if $self->priv < 6; # a line is cmd, msgno, data my @f = split /\s+/, $line, 3; @@ -18,8 +18,8 @@ my $data; #$DB::single = 1; -$cmd = shift @f if $f[0] =~ /^\w+$/; -$msgno = shift @f if $f[0] =~ /^\d+$/; +$cmd = shift @f if @f && $f[0] =~ /^\w+$/; +$msgno = shift @f if @f && $f[0] =~ /^\d+$/; # handle queuing if ($cmd =~ /^qu/i && !$msgno) { @@ -59,6 +59,16 @@ if ($cmd =~ /^to/i) { $old = $ref->private ? 'P' : 'B'; $new = 'B'; $ref->private(0); +} elsif ($cmd =~ /^re/i) { + $m = 'Msg Type'; + $old = $ref->read ? 'Read' : 'Unread'; + $new = 'Read'; + $ref->read(1); +} elsif ($cmd =~ /^(nore|unre)/i) { + $m = 'Msg Type'; + $old = $ref->read ? 'Read' : 'Unread'; + $new = 'Unread'; + $ref->read(0); } elsif ($cmd =~ /^rr/i) { $m = 'RR Req'; $old = $ref->rrreq ? 'RR Req' : 'No RR Req'; @@ -79,6 +89,11 @@ if ($cmd =~ /^to/i) { $old = $ref->keep ? 'Keep' : 'No Keep'; $new = 'No Keep'; $ref->keep(0); +} elsif ($cmd =~ /^node/i) { + $m = 'Delete'; + $old = $ref->delete ? 'Delete' : 'Not Delete'; + $new = 'Not Delete'; + $ref->unmark_delete; } elsif ($cmd =~ /^su/i) { $m = 'Subject'; $old = $ref->subject; @@ -88,7 +103,9 @@ if ($cmd =~ /^to/i) { $old = cldatetime($ref->waitt) || 'None'; $new = 'None'; $ref->waitt(0); -} +} else { + return (1, $self->msg('e15', $cmd)); +} # store changes and return $ref->store( [ $ref->read_msg_body() ] );