From c6a6fe07cf2fb3f1002989d30ba23c635b30c921 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sun, 29 Apr 2018 11:00:37 +0200 Subject: [PATCH] Search parsing: fix using a parenthesized expression following an implied "and". --- src/calibre/utils/search_query_parser.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/utils/search_query_parser.py b/src/calibre/utils/search_query_parser.py index 466a800656..dbcfc7f13b 100644 --- a/src/calibre/utils/search_query_parser.py +++ b/src/calibre/utils/search_query_parser.py @@ -221,8 +221,8 @@ class Parser(object): return ['and', lhs, self.and_expression()] # Account for the optional 'and' - if (self.token_type() in [self.WORD, self.QUOTED_WORD] and - self.lcase_token() != 'or'): + if ((self.token_type() in [self.WORD, self.QUOTED_WORD] or self.token() == '(') + and self.lcase_token() != 'or'): return ['and', lhs, self.and_expression()] return lhs