From 5ee35d49b3b1078cc824894945e00e392c2b2e84 Mon Sep 17 00:00:00 2001 From: minima Date: Sun, 27 Feb 2005 16:00:26 +0000 Subject: [PATCH] add is_prefix and then use it --- perl/DXUtil.pm | 7 +++++++ perl/Spot.pm | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index 9f411812..927df28b 100644 --- a/perl/DXUtil.pm +++ b/perl/DXUtil.pm @@ -30,6 +30,7 @@ require Exporter; filecopy ptimelist print_all_fields cltounix unpad is_callsign is_latlong is_qra is_freq is_digits is_pctext is_pcflag insertitem deleteitem + is_prefix ); @@ -363,6 +364,12 @@ sub is_callsign $!x; } +sub is_prefix +{ + return $_[0] =~ m!^(?:[A-Z]{1,2}\d+ | \d[A-Z]{1,2}\d+)!x # basic prefix +} + + # check that a PC protocol field is valid text sub is_pctext { diff --git a/perl/Spot.pm b/perl/Spot.pm index 0ab1a516..22880485 100644 --- a/perl/Spot.pm +++ b/perl/Spot.pm @@ -335,7 +335,7 @@ sub dup $text =~ s/\%([0-9A-F][0-9A-F])/chr(hex($1))/eg; $text = uc unpad($text); my ($prefix) = $text =~ /\b(\w{1,4})$/; - $text =~ s/\b\w{1,4}$// if $prefix && Prefix::extract($prefix); + $text =~ s/\b\w{1,4}$// if $prefix && is_prefix($prefix); $text = substr($text, 0, $duplth) if length $text > $duplth; $text = pack("C*", map {$_ & 127} unpack("C*", $text)); $text =~ s/[^\w]//g; -- 2.34.1