fix sh/dx <call> with sql spot logging
[spider.git] / cmd / show / dx.pl
index f2629bfff0e225ef7249e358a17b166f46d38708..171b5efd78e7fbc86471810007cad1ec0eb4ff5b 100644 (file)
@@ -31,6 +31,8 @@ my $fromdxcc;
 my $exact;
 my ($doqsl, $doiota, $doqra, $dofilter);
 
+my $usesql = $main::dbh && $Spot::use_db_for_search;
+
 while ($f = shift @list) {             # next field
        #  print "f: $f list: ", join(',', @list), "\n";
        if (!$from && !$to) {
@@ -180,7 +182,7 @@ if ($pre) {
        unless (@ans) {
                $pre .= '*' unless $pre =~ /[\*\?\[]$/o;
                $pre = shellregex($pre);
-               if ($main::dbh) {
+               if ($usesql) {
                        $pre =~ s/\.\*/%/g;
                } else {
                        $pre =~ s/\.\*\$$//;
@@ -256,7 +258,7 @@ if ($spotter) {
                $expr .= ' && ' if $expr;
                $spotter .= '*' unless $spotter =~ /[\*\?\[]/o;
                $spotter = shellregex($spotter);
-               if ($main::dbh) {
+               if ($usesql) {
                        $spotter =~ s/\.\*/%/g;
                } else {
                        $spotter =~ s/\.\*\$$//;
@@ -330,7 +332,7 @@ if ($state) {
                push @expr, "\$f12 eq '$_'";
                push @hint, "m{$_}";
        }
-       if ($main::dbh) {
+       if ($usesql) {
                $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : "$expr[0]";
        } else {
                $expr .= @expr > 1 ? '(\$f12 && (' . join(' || ', @expr) . '))' : "(\$f12 && $expr[0])";
@@ -346,7 +348,7 @@ if ($bystate) {
                push @expr, "\$f13 eq '$_'";
                push @hint, "m{$_}";
        }
-       if ($main::dbh) {
+       if ($usesql) {
                $expr .= @expr > 1 ? '(' . join(' || ', @expr) . ')' : "$expr[0]";
        } else {
                $expr .= @expr > 1 ? '(\$f13 && (' . join(' || ', @expr) . '))' : "(\$f13 && $expr[0])";