X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUtil.pm;h=86dc91998fb6408bd6f2e4e3b293019a86ef51ec;hb=6f9f47b53d1b6c2a52722b525695fa1c03ab1ed7;hp=a1fb13ba2d34771044598ca3753f8a4238754830;hpb=f3688be5d3f50cccf204d3d01dcaca1e9db7d4f7;p=spider.git diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index a1fb13ba..86dc9199 100644 --- a/perl/DXUtil.pm +++ b/perl/DXUtil.pm @@ -15,7 +15,7 @@ require Exporter; @ISA = qw(Exporter); @EXPORT = qw(atime ztime cldate cldatetime slat slong yesno promptf parray parraypairs shellregex - print_all_fields cltounix + print_all_fields cltounix iscallsign ); @month = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); @@ -80,6 +80,7 @@ sub cltounix return 0 unless $time =~ /^([012]\d)([012345]\d)Z$/; $time = "$1:$2 +0000"; my $r = str2time("$date $time"); + return $r unless $r; return $r == -1 ? undef : $r; } @@ -166,7 +167,7 @@ sub print_all_fields my @fields = $ref->fields; my $field; - foreach $field (sort @fields) { + foreach $field (sort {$ref->field_prompt($a) cmp $ref->field_prompt($b)} @fields) { if (defined $ref->{$field}) { my ($priv, $ans) = promptf($ref->field_prompt($field), $ref->{$field}); push @out, $ans if ($self->priv >= $priv); @@ -181,5 +182,14 @@ sub shellregex { my $in = shift; $in =~ s{(.)} { $patmap{$1} || "\Q$1" }ge; - return '^' . $in . '$'; + return '^' . $in . "\$"; +} + +# start an attempt at determining whether this string might be a callsign +sub iscallsign +{ + my $call = shift; + return 1 if $call =~ /^\w+\d+/; + return 1 if $call =~ /^\d+\w+/; + return undef; }