sub parray
{
my $ref = shift;
- return join(', ', @{$ref});
+ return ref $ref ? join(', ', @{$ref}) : $ref;
}
# take the arg as an array reference and print as a list of pairs
# check that a field only has callsign characters in it
sub is_callsign
{
- return $_[0] =~ /^(?:[A-Z]{1,2}\d+|\d[A-Z]\d+)[A-Z]{1,3}(?:-\d{1,2}|\/(?:[A-Z]{1,2}\d{0,2}|\d[A-Z]\d{0,2}))?$/;
+ return $_[0] =~ /^(?:[A-Z]{1,2}\d+|\d[A-Z]{1,2}\d+)[A-Z]{1,3}(?:-\d{1,2}|\/(?:[A-Z]{1,2}\d{0,2}|\d[A-Z]\d{0,2}))?$/;
}
# check that a PC protocol field is valid text
sub is_pctext
{
- return undef if $_[0] =~ /[\x00-\x08\x0a-\x1f\xf0-\xff]/;
+ return undef if $_[0] =~ /[\x00-\x08\x0a-\x1f\x80-\x9f]/;
return $_[0];
}
# does it look like a qra locator?
sub is_qra
{
- return $_[0] =~ /^[A-Za-z][A-Za-z]\d\d[A-Za-z][A-Za-z]$/o;
+ return $_[0] =~ /^[A-Ra-r][A-Ra-r]\d\d[A-Xa-x][A-Xa-x]$/;
}
# does it look like a valid lat/long