improve DXQsl handling and fix crashes?
[spider.git] / perl / DXUtil.pm
index 14819ad1b146446d6bbe5ca36088bbfc4728cf6d..abb20a96a4ec3c184d118a363d07f67530307a2a 100644 (file)
@@ -15,7 +15,7 @@ use Data::Dumper;
 
 use strict;
 
-use vars qw(@month %patmap @ISA @EXPORT);
+use vars qw(@month %patmap $pi $d2r $r2d @ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(Exporter);
@@ -24,7 +24,7 @@ require Exporter;
                         filecopy ptimelist
              print_all_fields cltounix unpad is_callsign is_long_callsign is_latlong
                         is_qra is_freq is_digits is_pctext is_pcflag insertitem deleteitem
-                        is_prefix dd is_ipaddr
+                        is_prefix dd is_ipaddr $pi $d2r $r2d
             );
 
 
@@ -36,6 +36,11 @@ require Exporter;
                   ']' => ']'
 );
 
+$pi = 3.141592653589;
+$d2r = ($pi/180);
+$r2d = (180/$pi);
+
+
 # a full time for logging and other purposes
 sub atime
 {
@@ -430,7 +435,8 @@ sub is_digits
 # does it look like a qra locator?
 sub is_qra
 {
-       return $_[0] =~ /^[A-Ra-r][A-Ra-r]\d\d[A-Xa-x][A-Xa-x]$/;
+       return unless length $_[0] == 4 || length $_[0] == 6;
+       return $_[0] =~ /^[A-Ra-r][A-Ra-r]\d\d(?:[A-Xa-x][A-Xa-x])?$/;
 }
 
 # does it look like a valid lat/long