improve DXQsl handling and fix crashes?
[spider.git] / perl / DXUtil.pm
index 9c14715c5ee073bdfa105302bc36c0bfaf5f6cd9..bad92927dff99fea8340977746ddd0c8c92792f4 100644 (file)
@@ -385,8 +385,8 @@ sub is_callsign
                                          (?:(?:[A-Z]{1,2}\d* | \d[A-Z]{1,2}\d*)/)?   # out of area prefix /
                                          (?:[A-Z]{1,2}\d+ | \d[A-Z]{1,2}\d+)?        # main prefix one 
                                          [A-Z]{1,5}                                  # callsign letters
-                                         (?:-\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
+                                         (?:-(?:\d{1,2}|\#))?                        # - nn possibly (eg G8BPQ-8) or -# (an RBN spot) 
+                                         (?:/[0-9A-Z]{1,7})?                         # / another prefix, callsign or special label (including /MM, /P as well as /EURO or /LGT) possibly
                                          $!x;
 
        # longest callign allowed is 1X11/1Y11XXXXX-11/XXXXXXX
@@ -427,7 +427,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