From 2e7bf0fd9796ec992d1d9dfde2e6824961429723 Mon Sep 17 00:00:00 2001 From: Jan Szejko Date: Mon, 11 Jul 2016 18:21:07 +0200 Subject: [PATCH] don't escape non-ascii for regular expressions --- src/catalogue/views.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/catalogue/views.py b/src/catalogue/views.py index 6782e5369..44a17b412 100644 --- a/src/catalogue/views.py +++ b/src/catalogue/views.py @@ -365,7 +365,14 @@ def _no_diacritics_regexp(query): def unicode_re_escape(query): """ Unicode-friendly version of re.escape """ - return re.sub(r'(?u)(\W)', r'\\\1', query) + s = list(query) + for i, c in enumerate(query): + if re.match(r'(?u)(\W)', c) and re.match(r'[\x00-\x7e]', c): + if c == "\000": + s[i] = "\\000" + else: + s[i] = "\\" + c + return query[:0].join(s) def _word_starts_with(name, prefix): -- 2.20.1