From 32895741531b6350213cf3dcb1c1112aaf4e9952 Mon Sep 17 00:00:00 2001 From: John Schember Date: Sat, 28 Nov 2009 14:13:54 -0500 Subject: [PATCH] PML input: don't turn HTML entities in the PML into the character. --- src/calibre/ebooks/pml/pmlconverter.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/calibre/ebooks/pml/pmlconverter.py b/src/calibre/ebooks/pml/pmlconverter.py index 8c34cc8da9..7707325131 100644 --- a/src/calibre/ebooks/pml/pmlconverter.py +++ b/src/calibre/ebooks/pml/pmlconverter.py @@ -139,6 +139,10 @@ def prepare_pml(self, pml): pml = re.sub(r'(?mus).+?)">\s*(?P.*?)\s*', lambda match: '\\FN="fns-%s"%s\\FN' % (match.group('target'), match.group('text')) if match.group('text') else '', pml) pml = re.sub(r'(?mus).+?)">\s*(?P.*?)\s*', lambda match: '\\SB="fns-%s"%s\\SB' % (match.group('target'), match.group('text')) if match.group('text') else '', pml) + # Convert &'s into entities so & in the text doesn't get turned into + # &. It will display as & + pml = pml.replace('&', '&') + pml = re.sub(r'\\a(?P\d{3})', lambda match: '&#%s;' % match.group('num'), pml) pml = re.sub(r'\\U(?P[0-9a-f]{4})', lambda match: '%s' % my_unichr(int(match.group('num'), 16)), pml)