From f878552be59b8ef8ca33ba863b66bebce367764e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 25 Mar 2015 08:12:49 +0530 Subject: [PATCH] Edit Book: Fix a regression that caused Remove unused CSS to fail on invalid CSS selectors, instead of ignoring them --- src/calibre/ebooks/oeb/polish/css.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/calibre/ebooks/oeb/polish/css.py b/src/calibre/ebooks/oeb/polish/css.py index b6e4ff0acb..06e97f0970 100644 --- a/src/calibre/ebooks/oeb/polish/css.py +++ b/src/calibre/ebooks/oeb/polish/css.py @@ -13,14 +13,20 @@ from calibre import force_unicode from calibre.ebooks.oeb.base import OEB_STYLES, OEB_DOCS from calibre.ebooks.oeb.normalize_css import normalize_filter_css, normalizers from calibre.ebooks.oeb.polish.pretty import pretty_script_or_style -from css_selectors import Select +from css_selectors import Select, SelectorError def filter_used_rules(rules, log, select): for rule in rules: used = False for selector in rule.selectorList: - if select.has_matches(selector.selectorText): + try: + if select.has_matches(selector.selectorText): + used = True + break + except SelectorError: + # Cannot parse/execute this selector, be safe and assume it + # matches something used = True break if not used: