From 73b6f42362076be17195a08d62cc08e4c9d76ae7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnter=20Milde?= Date: Wed, 10 Jan 2018 12:05:26 +0100 Subject: [PATCH] Do not convert dashes/hyphens in LyX-Code. See previous commit and #10961 --- lib/lyx2lyx/lyx_2_2.py | 10 ++++++++++ lib/lyx2lyx/lyx_2_3.py | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/lyx2lyx/lyx_2_2.py b/lib/lyx2lyx/lyx_2_2.py index 12ccd4a003..ced6482e1f 100644 --- a/lib/lyx2lyx/lyx_2_2.py +++ b/lib/lyx2lyx/lyx_2_2.py @@ -634,6 +634,16 @@ def convert_dashes(document): else: i = j continue + if document.body[i] == "\\begin_layout LyX-Code": + j = find_end_of_layout(document.body, i) + if j == -1: + document.warning("Malformed LyX document: " + "Can't find end of %s layout at line %d" % (words[1],i)) + i += 1 + else: + i = j + continue + if len(words) > 0 and words[0] in ["\\leftindent", "\\paragraph_spacing", "\\align", "\\labelwidthstring"]: # skip paragraph parameters (bug 10243) i += 1 diff --git a/lib/lyx2lyx/lyx_2_3.py b/lib/lyx2lyx/lyx_2_3.py index 9cda3d7be8..a39aaadd09 100644 --- a/lib/lyx2lyx/lyx_2_3.py +++ b/lib/lyx2lyx/lyx_2_3.py @@ -1871,6 +1871,12 @@ def convert_dashligatures(document): document.warning("Malformed LyX document: " "Can't find end of %s inset at line %d" % (words[1],i)) continue + if line == "\\begin_layout LyX-Code": + j = find_end_of_layout(document.body, i) + if j == -1: + document.warning("Malformed LyX document: " + "Can't find end of %s layout at line %d" % (words[1],i)) + continue # literal dash followed by a word or no-break space: if re.search(u"[\u2013\u2014]([\w\u00A0]|$)", line, flags=re.UNICODE): @@ -1925,6 +1931,14 @@ def revert_dashligatures(document): + words[1] + " inset at line " + str(i)) new_body.append(line) continue + if line == "\\begin_layout LyX-Code": + j = find_end_of_layout(document.body, i) + if j == -1: + document.warning("Malformed LyX document: " + "Can't find end of %s layout at line %d" % (words[1],i)) + new_body.append(line) + continue + # TODO: skip replacement in typewriter fonts line = line.replace(u'\u2013', '\\twohyphens\n') line = line.replace(u'\u2014', '\\threehyphens\n') lines = line.split('\n') -- 2.39.2