Fix search() behavior

This commit is contained in:
Kovid Goyal 2010-05-24 15:26:18 -06:00
parent b895a2214a
commit 786ab0ef80

View File

@ -632,19 +632,21 @@ class ResultCache(SearchQueryParser):
q = '' q = ''
if not ignore_search_restriction: if not ignore_search_restriction:
q = self.search_restriction q = self.search_restriction
elif not ignore_search_restriction: else:
if ignore_search_restriction:
q = u'%s' % query
else:
q = u'%s (%s)' % (self.search_restriction, query) q = u'%s (%s)' % (self.search_restriction, query)
if not q: if not q:
if return_matches: if return_matches:
return list(self._map) # when return_matches, do not update the maps! return list(self._map) # when return_matches, do not update the maps!
self._map_filtered = list(self._map) self._map_filtered = list(self._map)
return [] return
matches = sorted(self.parse(q)) matches = sorted(self.parse(q))
ans = [id for id in self._map if id in matches] ans = [id for id in self._map if id in matches]
if return_matches: if return_matches:
return ans return ans
self._map_filtered = ans self._map_filtered = ans
return []
def set_search_restriction(self, s): def set_search_restriction(self, s):
self.search_restriction = s self.search_restriction = s