X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FSpot.pm;h=57cf2599a103e0c71d310da69487144387898ddb;hb=e39b738850b9a122b60b179e9723e546ddacfd62;hp=7e621c91f4a947b4f7efa75e8c742916a9440c94;hpb=b228776e730a2aaf6c18d2f88a458719e6b0275a;p=spider.git diff --git a/perl/Spot.pm b/perl/Spot.pm index 7e621c91..57cf2599 100644 --- a/perl/Spot.pm +++ b/perl/Spot.pm @@ -23,7 +23,7 @@ use vars qw($fp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupage $fil $fp = undef; $maxspots = 50; # maximum spots to return $defaultspots = 10; # normal number of spots to return -$maxdays = 365; # normal maximum no of days to go back +$maxdays = 3*31; # normal maximum no of days to go back $dirprefix = "spots"; $duplth = 20; # the length of text to use in the deduping $dupage = 3*3600; # the length of time to hold spot dups @@ -183,7 +183,7 @@ sub search $expr =~ s/\$f(\d)/\$ref->[$1]/g; # swap the letter n for the correct field name # $expr =~ s/\$f(\d)/\$spots[$1]/g; # swap the letter n for the correct field name - dbg("search", "expr='$expr', spotno=$from-$to, day=$dayfrom-$dayto\n"); + dbg("search", "hint='$hint', expr='$expr', spotno=$from-$to, day=$dayfrom-$dayto\n"); # build up eval to execute $eval = qq( @@ -230,6 +230,7 @@ sub ftor my ($a, $b) = @_; return undef unless $a < $b; $b--; + my $d = $b - $a; my @a = split //, $a; my @b = split //, $b; my $out; @@ -239,12 +240,14 @@ sub ftor while (@b) { my $aa = shift @a; my $bb = shift @b; - if ($aa eq $bb) { + if (@b < (length $d) - 1) { + $out .= '\\d'; + } elsif ($aa eq $bb) { $out .= $aa; } elsif ($aa < $bb) { $out .= "[$aa-$bb]"; } else { - $out .= "[$bb-$aa]"; + $out .= "[0-$bb$aa-9]"; } } return $out;