fix problem displaying spots with the standalone program 'showdx'.
[spider.git] / cmd / show / dx.pl
index ddc29bbab419a1f513c3b84f8f40cf9e52214a26..17a17d27e3e23e4fa0ec19a0aa092ddbb3699862 100644 (file)
@@ -314,7 +314,11 @@ if ($state) {
                push @expr, "\$f12 eq '$_'";
                push @hint, "m{$_}";
        }
-       $expr .= @expr > 1 ? '($f12 && (' . join(' || ', @expr) . '))' : "(\$f12 && $expr[0])";
+       if ($main::dbh) {
+               $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : "$expr[0]";
+       } else {
+               $expr .= @expr > 1 ? '(\$f12 && (' . join(' || ', @expr) . '))' : "(\$f12 && $expr[0])";
+       }
        $hint .= @hint > 1 ? '(' . join(' || ', @hint) . ')' : $hint[0];
 }
 if ($bystate) {
@@ -326,7 +330,11 @@ if ($bystate) {
                push @expr, "\$f13 eq '$_'";
                push @hint, "m{$_}";
        }
-       $expr .= @expr > 1 ? '($f13 && (' . join(' || ', @expr) . '))' : "(\$f13 && $expr[0])";
+       if ($main::dbh) {
+               $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : "$expr[0]";
+       } else {
+               $expr .= @expr > 1 ? '(\$f13 && (' . join(' || ', @expr) . '))' : "(\$f13 && $expr[0])";
+       }
        $hint .= @hint > 1 ? '(' . join(' || ', @hint) . ')' : $hint[0];
 }
 
@@ -361,11 +369,11 @@ my @res = Spot::search($expr, $fromday, $today, $from, $to, $hint, $dofilter ? $
 my $ref;
 my @dx;
 foreach $ref (@res) {
-       if ($self->ve7cc) {
+       if ($self && $self->ve7cc) {
                push @out, VE7CC::dx_spot($self, @$ref);
        } else {
                if ($real) {
-                       push @out, $self->format_dx_spot(@$ref);
+                       push @out, DXCommandmode::format_dx_spot($self, @$ref);
                } else {
                        push @out, Spot::formatl(@$ref);
                }