From dcbb72a2b8c606cd1c4456ff9b0e08f98ecffade Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 10 May 2023 07:06:21 +0530 Subject: [PATCH] Fix copy all book details not respecting line breaks in fields --- src/calibre/gui2/book_details.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index ebcf474fa9..6999a7772c 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -92,6 +92,9 @@ def copy_all(text_browser): if not is_vertical: parent = tables[1] for tag in parent.iterdescendants('td'): + for child in tag.iterdescendants('br'): + child.tag = 'span' + child.text = '\ue000' tt = etree.tostring(tag, method='text', encoding='unicode') tag.tag = 'span' for child in tuple(tag): @@ -105,6 +108,7 @@ def copy_all(text_browser): from calibre.utils.html2text import html2text simplified_html = etree.tostring(root, encoding='unicode') txt = html2text(simplified_html, single_line_break=True).strip() + txt = txt.replace('\ue000', '\n\t') if iswindows: txt = os.linesep.join(txt.splitlines()) # print(simplified_html)