X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXLogPrint.pm;h=a6d074a6a64bfd78c768dae4e7388126f537117f;hb=8e14149148baba63ce5ae2b95aacda8ab6dd0d87;hp=9564ae690b87d84817f32c1cea06e74cab5a826f;hpb=e092b3748fa8f58e626a0a379bdee05996f69c27;p=spider.git diff --git a/perl/DXLogPrint.pm b/perl/DXLogPrint.pm index 9564ae69..a6d074a6 100644 --- a/perl/DXLogPrint.pm +++ b/perl/DXLogPrint.pm @@ -18,8 +18,13 @@ use DXLog; use Julian; -our $readback = `which tac`; +our $readback = $main::is_win ? 0 : 1; +if ($readback) { + $readback = `which tac`; +} chomp $readback; +#undef $readback; # yet another reason not to use the cloud! + use strict; @@ -31,11 +36,11 @@ $maxmonths = 36; # # This command outputs a list of n lines starting from time t with $pattern tags # -sub print +sub search { my $fcb = $DXLog::log; - my $from = shift || 0; - my $to = shift || 10; + my $from = shift // 0; + my $to = shift // 10; my $jdate = $fcb->unixtoj(shift); my $pattern = shift; my $who = shift; @@ -48,17 +53,19 @@ sub print $who = uc $who if defined $who; + dbg("from: $from to: $to pattern: $pattern hint: $hint") if isdbg('search'); + if ($pattern) { - $hint = q{m{\Q$pattern\E}i}; + $hint = qq{m{\Q$pattern\E}i}; } else { $hint = q{!m{\^(?:ann|rcmd|talk|chat)\^}}; } if ($who) { $hint .= ' && ' if $hint; - $hint .= q{m{\Q$who\E}oi}; + $hint .= q{m{\Q$who\E}i}; } $hint = "next unless $hint" if $hint; - $hint .= "; next unless m{^\\d+\\^$pattern\\^}" if $pattern; + $hint .= "; next unless m{^\\d+\\^$pattern\\^}i" if $pattern; $hint ||= ""; $eval = qq(while (<\$fh>) { @@ -107,10 +114,20 @@ sub print return "show/$name: ${s}not found"; } - for (reverse @in) { - my @line = split /\^/ ; - push @out, print_item(\@line); - + for (sort {$a cmp $b } @in) { + push @out, [ split /\^/ ] + } + + return @out; +} + +sub print +{ + my @out; + + my @in = search(@_); + for (@in) { + push @out, print_item($_); } return @out; }