# examples:-
#
# watchdbg g1tlh # watch everything g1tlh does
+# watchdbg 2 PCPROT # watch all PCPROT messages + up to 2 lines before
# watchdbg gb7baa gb7djk # watch the conversation between BAA and DJK
#
my $fp = DXLog::new('debug', 'dat', 'd');
my @today = Julian::unixtoj(time());
my $fh = $fp->open(@today) or die $!;
-my $nolines = shift if $ARGV[0] =~ /^\d+$/ || 1;
+my $nolines = 1;
+$nolines = shift if $ARGV[0] =~ /^\d+$/;
my $exp = join '|', @ARGV;
my @prev;
if ($exp) {
push @prev, $line;
shift @prev while @prev > $nolines;
- printit(@prev) if $line =~ m{(?:$exp)}oi;
+ if ($line =~ m{(?:$exp)}oi) {
+ printit(@prev);
+ @prev = ();
+ }
} else {
printit($line);
}
{
while (@_) {
my $line = shift;
+ chomp $line;
+ $line =~ s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg;
my @line = split '\^', $line;
my $t = shift @line;
my ($sec,$min,$hour) = gmtime((defined $t) ? $t : time);
my $buf = sprintf "%02d:%02d:%02d", $hour, $min, $sec;
- print $buf, ' ', join('^', @line);
+ print $buf, ' ', join('^', @line), "\n";
}
}
exit(0);