projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix sh/dx by call and missing files
[spider.git]
/
perl
/
DXUtil.pm
diff --git
a/perl/DXUtil.pm
b/perl/DXUtil.pm
index b7c455198fd35633bb5214d585f85697e5a54823..20837f2f6494f1f5d7645e3d96c41c4a5d46eb8d 100644
(file)
--- 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
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
+ diffms _diffms difft parraydifft
is_ztime
);
);
@@
-383,10
+383,10
@@
sub unpad
sub is_callsign
{
return $_[0] =~ m!^
sub is_callsign
{
return $_[0] =~ m!^
- (?:\d?[A-Z]{1,2}\d
*
/)? # out of area prefix /
- (?:\d?[A-Z]{1,2}\d
+
) # main prefix one (required)
+ (?:\d?[A-Z]{1,2}\d
{0,2}
/)? # out of area prefix /
+ (?:\d?[A-Z]{1,2}\d
{1,2}
) # main prefix one (required)
[A-Z]{1,5} # callsign letters (required)
[A-Z]{1,5} # callsign letters (required)
- (?:-(?:\d{1,2}
|\#))? # - nn possibly (eg G8BPQ-8) or -# (an RBN spot)
+ (?:-(?:\d{1,2}
))? # - nn possibly (eg G8BPQ-8)
(?:/[0-9A-Z]{1,7})? # / another prefix, callsign or special label (including /MM, /P as well as /EURO or /LGT) possibly
$!x;
(?:/[0-9A-Z]{1,7})? # / another prefix, callsign or special label (including /MM, /P as well as /EURO or /LGT) possibly
$!x;
@@
-444,6
+444,12
@@
sub is_ipaddr
return $_[0] =~ /^\d+\.\d+\.\d+\.\d+$/ || $_[0] =~ /^[0-9a-f:,]+$/;
}
return $_[0] =~ /^\d+\.\d+\.\d+\.\d+$/ || $_[0] =~ /^[0-9a-f:,]+$/;
}
+# is it a zulu time hhmmZ
+sub is_ztime
+{
+ return $_[0] =~ /^(?:(?:2[0-3])|(?:[01][0-9]))[0-5][0-9]Z$/;
+}
+
# insert an item into a list if it isn't already there returns 1 if there 0 if not
sub insertitem
{
# insert an item into a list if it isn't already there returns 1 if there 0 if not
sub insertitem
{
@@
-527,25
+533,35
@@
sub diffms
sub difft
{
my $b = shift;
sub difft
{
my $b = shift;
+ my $adds = shift;
+
my $t;
if (ref $b eq 'ARRAY') {
$t = $b->[1] - $b->[0];
} else {
my $t;
if (ref $b eq 'ARRAY') {
$t = $b->[1] - $b->[0];
} else {
- $t = shift() - $b;
+ if ($adds >= $b) {
+ $t = $adds - $b;
+ $adds = shift;
+ } else {
+ $t = $main::systime - $b;
+ }
}
return '-(ve)' if $t < 0;
my ($d,$h,$m,$s);
my $out = '';
$d = int $t / 86400;
}
return '-(ve)' if $t < 0;
my ($d,$h,$m,$s);
my $out = '';
$d = int $t / 86400;
- $out .=
"${d}d"
if $d;
+ $out .=
sprintf ("%s${d}d", $adds?' ':'')
if $d;
$t -= $d * 86400;
$h = int $t / 3600;
$t -= $d * 86400;
$h = int $t / 3600;
- $out .=
"${h}h" if $h || $d
;
+ $out .=
sprintf ("%s${h}h", $adds?' ':'') if $h
;
$t -= $h * 3600;
$m = int $t / 60;
$t -= $h * 3600;
$m = int $t / 60;
- $out .= "${m}m" if $m || $h || $d;
- $s = int $t % 60;
- $out .= "${s}s";
+ $out .= sprintf ("%s${m}m", $adds?' ':'') if $m;
+ if ($d == 0 && $adds || $adds == 2) {
+ $s = int $t % 60;
+ $out .= sprintf ("%s${s}s", $adds?' ':'') if $s;
+ $out ||= sprintf ("%s0s", $adds?' ':'');
+ }
return $out;
}
return $out;
}