X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fshow%2Fannounce.pl;h=30b1f8798706e2450251a7692d3ae3e822b4e2ae;hb=8e14149148baba63ce5ae2b95aacda8ab6dd0d87;hp=267d27c330a4fe47181a8a8086c8a172dee4e5b2;hpb=62a87def961821679e455f333a58bc8c357e0457;p=spider.git diff --git a/cmd/show/announce.pl b/cmd/show/announce.pl index 267d27c3..30b1f879 100644 --- a/cmd/show/announce.pl +++ b/cmd/show/announce.pl @@ -40,7 +40,16 @@ while ($f = shift @f) { # next field $to = 20 unless $to; $from = 0 unless $from; -return (1, DXLog::print($from, $to, $main::systime, 'ann', $who)) if $self->{_nospawn};; +# if we can get it out of the cache than do it +if (!$who && !$from && $to < @AnnTalk::anncache) { + my @in = @AnnTalk::anncache[-$to .. -1]; + for (@in) { + push @out, DXLog::print_item($_); + } + return (1, @out); +} + +return (1, DXLog::print($from, $to, $main::systime, 'ann', $who)) if ($self->{_nospawn} || $main::is_win == 1) || $DB::VERSION; return (1, $self->spawn_cmd("show/announce $cmdline", \&DXLog::print, args => [$from, $to, $main::systime, 'ann', $who])); return (1, @out);