projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add * 60 factoring for proc
[spider.git]
/
perl
/
DXUtil.pm
diff --git
a/perl/DXUtil.pm
b/perl/DXUtil.pm
index 2c814ea33d834cbe5001eede20eecc0755059695..e497a6e9df6c2febbca7c1aa3354ef2e234f7d11 100644
(file)
--- a/
perl/DXUtil.pm
+++ b/
perl/DXUtil.pm
@@
-10,13
+10,14
@@
package DXUtil;
use Date::Parse;
use IO::File;
use Date::Parse;
use IO::File;
+use File::Copy;
use Data::Dumper;
use strict;
use vars qw($VERSION $BRANCH);
$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
use Data::Dumper;
use strict;
use vars qw($VERSION $BRANCH);
$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/
) || 0
;
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/
|| (0,0))
;
$main::build += $VERSION;
$main::branch += $BRANCH;
$main::build += $VERSION;
$main::branch += $BRANCH;
@@
-26,6
+27,7
@@
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(atime ztime cldate cldatetime slat slong yesno promptf
parray parraypairs phex shellregex readfilestr writefilestr
@ISA = qw(Exporter);
@EXPORT = qw(atime ztime cldate cldatetime slat slong yesno promptf
parray parraypairs phex shellregex readfilestr writefilestr
+ filecopy
print_all_fields cltounix unpad is_callsign is_latlong
is_qra is_freq is_digits is_pctext is_pcflag insertitem deleteitem
);
print_all_fields cltounix unpad is_callsign is_latlong
is_qra is_freq is_digits is_pctext is_pcflag insertitem deleteitem
);
@@
-163,7
+165,7
@@
sub phex
sub parray
{
my $ref = shift;
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
}
# take the arg as an array reference and print as a list of pairs
@@
-321,6
+323,11
@@
sub writefilestr
}
}
}
}
+sub filecopy
+{
+ copy(@_) or return $!;
+}
+
# remove leading and trailing spaces from an input string
sub unpad
{
# remove leading and trailing spaces from an input string
sub unpad
{
@@
-333,13
+340,15
@@
sub unpad
# check that a field only has callsign characters in it
sub is_callsign
{
# 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]+(?:-\d{1,2}|\/[A-Z0-9]+
)?$/;
+ 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
{
}
# check that a PC protocol field is valid text
sub is_pctext
{
- return $_[0] =~ /^[\x09\x20-\xFF]+$/;
+ return undef unless length $_[0];
+ return undef if $_[0] =~ /[\x00-\x08\x0a-\x1f\x80-\x9f]/;
+ return 1;
}
# check that a PC prot flag is fairly valid (doesn't check the difference between 1/0 and */-)
}
# check that a PC prot flag is fairly valid (doesn't check the difference between 1/0 and */-)
@@
-351,7
+360,7
@@
sub is_pcflag
# check that a thing is a frequency
sub is_freq
{
# check that a thing is a frequency
sub is_freq
{
- return $_[0] =~ /^
[\d\.]+
$/;
+ return $_[0] =~ /^
\d+(?:\.\d+)?
$/;
}
# check that a thing is just digits
}
# check that a thing is just digits
@@
-363,7
+372,7
@@
sub is_digits
# does it look like a qra locator?
sub is_qra
{
# 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
}
# does it look like a valid lat/long