lib/PublicInbox/SearchView.pm | 6 ++---- t/psgi_search.t | 6 ++++++ diff --git a/lib/PublicInbox/SearchView.pm b/lib/PublicInbox/SearchView.pm index bf4415f011b8ea79603a1de8c4da348b312e9d08..219006a0d7070dbfc58530255eba7aeba1919ff4 100644 --- a/lib/PublicInbox/SearchView.pm +++ b/lib/PublicInbox/SearchView.pm @@ -309,10 +309,8 @@ sub new { my ($class, $qp) = @_; my $r = $qp->{r}; - my $l = $qp->{l} || '200'; - if (! ($l =~ /(\d+)/ && $l <= $LIM)) { - $l = $LIM; - } + my ($l) = (($qp->{l} || '') =~ /(\d+)/); + $l = $LIM if !$l || $l > $LIM; bless { q => $qp->{'q'}, x => $qp->{x} || '', diff --git a/t/psgi_search.t b/t/psgi_search.t index 1df38691c1c07a1b3eb825683d691325c3be1316..84b3daa3402ac071b4562addc70ef3e6e547e71d 100644 --- a/t/psgi_search.t +++ b/t/psgi_search.t @@ -64,6 +64,12 @@ is(1, scalar keys %uniq, 'all query values identical in HTML'); is('%C3%86var', (keys %uniq)[0], 'matches original query'); ok(index($html, 'by Ævar Arnfjörð Bjarmason') >= 0, "displayed Ævar's name properly in HTML"); + + my $warn = []; + local $SIG{__WARN__} = sub { push @$warn, @_ }; + $res = $cb->(GET('/test/?q=s:test&l=5e')); + is($res->code, 200, 'successful search result'); + is_deeply([], $warn, 'no warnings from non-numeric comparison'); }); done_testing();