- $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : $expr[0];
- $hint .= @hint > 1 ? '(' . join(' || ', @hint) . ')' : $hint[0];
-}
-if ($byzone) {
- my @expr;
- my @hint;
- for (split /[:,]/, $byzone) {
- push @expr, "\$f11==$_";
- push @hint, "m{$_}";
- }
- $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : $expr[0];
- $hint .= @hint > 1 ? '(' . join(' || ', @hint) . ')' : $hint[0];
-}
-
-# itu requests
-if ($itu) {
- my @expr;
- my @hint;
- for (split /[:,]/, $itu) {
- push @expr, "\$f8==$_";
- push @hint, "m{$_}";
- }
- $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : $expr[0];
- $hint .= @hint > 1 ? '(' . join(' || ', @hint) . ')' : $hint[0];
-}
-if ($byitu) {
- my @expr;
- my @hint;
- for (split /[:,]/, $byitu) {
- push @expr, "\$f10==$_";
- push @hint, "m{$_}";
- }
- $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : $expr[0];
- $hint .= @hint > 1 ? '(' . join(' || ', @hint) . ')' : $hint[0];
-}
-
-# state requests
-if ($state) {
- my @expr;
- my @hint;
- for (split /[:,]/, $state) {
- push @expr, "\$f12 eq '$_'";
- push @hint, "m{$_}";
- }
- $expr .= @expr > 1 ? '($f12 && (' . join(' || ', @expr) . '))' : "(\$f12 && $expr[0])";
- $hint .= @hint > 1 ? '(' . join(' || ', @hint) . ')' : $hint[0];
-}
-if ($bystate) {
- my @expr;
- my @hint;
- for (split /[:,]/, $bystate) {
- push @expr, "\$f13 eq '$_'";
- push @hint, "m{$_}";
- }
- $expr .= @expr > 1 ? '($f13 && (' . join(' || ', @expr) . '))' : "(\$f13 && $expr[0])";
- $hint .= @hint > 1 ? '(' . join(' || ', @hint) . ')' : $hint[0];
-}
-
-# qsl requests
-if ($doqsl) {
- $expr .= " && " if $expr;
- $expr .= "\$f3 =~ m{QSL|VIA}i";
- $hint .= " && " if $hint;
- $hint .= "m{QSL|VIA}i";
-}
+
+ my $newline = join(' ', @flist);
+ dbg("sh/dx newline: $newline") if isdbg('sh/dx');
+ my ($r, $filter, $fno, $user, $expr) = $Spot::filterdef->parse($self, 'spots', $newline, 1);