X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUtil.pm;h=5edb1994a3ac80f3d496c6d0bc61b5364cf3abb6;hb=9c8f43f26a7db08c4ff6ef2213c95c9f509abe36;hp=f7e52c9a92cb727e8c5431c4f9cd4d2d63e3d5e7;hpb=3b73a2dde8b378db6b56438699c5a1f233194dbf;p=spider.git diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index f7e52c9a..5edb1994 100644 --- a/perl/DXUtil.pm +++ b/perl/DXUtil.pm @@ -27,7 +27,7 @@ require Exporter; print_all_fields cltounix unpad is_callsign is_latlong is_qra is_freq is_digits is_pctext is_pcflag insertitem deleteitem is_prefix dd is_ipaddr $pi $d2r $r2d localdata localdata_mv - diffms _diffms difft parraydifft is_ztime + diffms _diffms _diffus difft parraydifft is_ztime ); @@ -514,6 +514,16 @@ sub _diffms return $b - $a; } +# and in microseconds +sub _diffus +{ + my $ta = shift; + my $tb = shift || [gettimeofday]; + my $a = int($ta->[0] * 1000000) + int($ta->[1]); + my $b = int($tb->[0] * 1000000) + int($tb->[1]); + return $b - $a; +} + sub diffms { my $call = shift; @@ -539,7 +549,7 @@ sub difft if (ref $b eq 'ARRAY') { $t = $b->[1] - $b->[0]; } else { - if ($adds >= $b) { + if ($adds && $adds =~ /^\d+$/ && $adds >= $b) { $t = $adds - $b; $adds = shift; } else { @@ -562,6 +572,7 @@ sub difft $out .= sprintf ("%s${s}s", $adds?' ':'') if $s; $out ||= sprintf ("%s0s", $adds?' ':''); } + $out = '0s' unless length $out; return $out; }