diff --git a/kitty/search_query_parser.py b/kitty/search_query_parser.py index 54b1b289a..9bf271431 100644 --- a/kitty/search_query_parser.py +++ b/kitty/search_query_parser.py @@ -126,7 +126,11 @@ def lex_scanner() -> Callable[[str], Tuple[List[Token], str]]: (r'".*?((? Tuple[Tuple[str, str], ...]: + return tuple(('\\' + x, chr(i + 1)) for i, x in enumerate('\\"()')) class NoLocation(ParseException): @@ -176,12 +180,12 @@ class Parser: def tokenize(self, expr: str) -> List[Token]: # Strip out escaped backslashes, quotes and parens so that the # lex scanner doesn't get confused. We put them back later. - for k, v in REPLACEMENTS: + for k, v in replacements(): expr = expr.replace(k, v) tokens = lex_scanner()(expr)[0] def unescape(x: str) -> str: - for k, v in REPLACEMENTS: + for k, v in replacements(): x = x.replace(v, k[1:]) return x