From 46b550af59827a39f075d12b8d27da7426e44072 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 2 Feb 2022 08:32:29 +0530 Subject: [PATCH] Fix a couple of bugs when beautifying files before comparing --- src/calibre/gui2/tweak_book/diff/view.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/tweak_book/diff/view.py b/src/calibre/gui2/tweak_book/diff/view.py index 1cb0441d79..23edc58b12 100644 --- a/src/calibre/gui2/tweak_book/diff/view.py +++ b/src/calibre/gui2/tweak_book/diff/view.py @@ -48,7 +48,10 @@ def beautify_text(raw, syntax): from calibre.ebooks.oeb.polish.parsing import parse from calibre.ebooks.oeb.polish.pretty import pretty_html_tree, pretty_xml_tree if syntax == 'xml': - root = safe_xml_fromstring(strip_encoding_declarations(raw)) + try: + root = safe_xml_fromstring(strip_encoding_declarations(raw)) + except etree.XMLSyntaxError: + return raw pretty_xml_tree(root) elif syntax == 'css': import logging @@ -63,7 +66,7 @@ def beautify_text(raw, syntax): # We dont care about @import rules fetcher=lambda x: (None, None), log=_css_logger) data = parser.parseString(raw, href='', validate=False) - return serialize(data, 'text/css') + return serialize(data, 'text/css').decode('utf-8') else: root = parse(raw, line_numbers=False) pretty_html_tree(None, root)