projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tidy the isolate code up a bit
[spider.git]
/
perl
/
watchdbg
diff --git
a/perl/watchdbg
b/perl/watchdbg
index 4ac24be1b02dd34c69b1d0bb9b629640a7edf400..92765ab4132f0ee913e0e32c8b4ae442be8dafc0 100755
(executable)
--- a/
perl/watchdbg
+++ b/
perl/watchdbg
@@
-6,6
+6,7
@@
# examples:-
#
# watchdbg g1tlh # watch everything g1tlh does
# 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
#
# watchdbg gb7baa gb7djk # watch the conversation between BAA and DJK
#
@@
-31,7
+32,9
@@
use strict;
my $fp = DXLog::new('debug', 'dat', 'd');
my @today = Julian::unixtoj(time());
my $fh = $fp->open(@today) or die $!;
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+$/;
+$nolines = abs $nolines if $nolines < 0;
my $exp = join '|', @ARGV;
my @prev;
my $exp = join '|', @ARGV;
my @prev;
@@
-43,7
+46,10
@@
for (;;) {
if ($exp) {
push @prev, $line;
shift @prev while @prev > $nolines;
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);
}
} else {
printit($line);
}
@@
-70,12
+76,13
@@
sub printit
{
while (@_) {
my $line = shift;
{
while (@_) {
my $line = shift;
- my @line = split '\^', $line;
- my $t = shift @line;
+ chomp $line;
+ $line =~ s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg;
+ my ($t, $l) = split /\^/, $line, 2;
my ($sec,$min,$hour) = gmtime((defined $t) ? $t : time);
my $buf = sprintf "%02d:%02d:%02d", $hour, $min, $sec;
my ($sec,$min,$hour) = gmtime((defined $t) ? $t : time);
my $buf = sprintf "%02d:%02d:%02d", $hour, $min, $sec;
- print $buf, ' ',
join('^', @line)
;
+ print $buf, ' ',
$l, "\n"
;
}
}
exit(0);
}
}
exit(0);