commit 1702e76a1fc3a0a56497f9aca65269612d299943
Author: Günter Milde <[email protected]>
Date: Wed Jan 10 12:05:26 2018 +0100
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(+), 0 deletions(-)
diff --git a/lib/lyx2lyx/lyx_2_2.py b/lib/lyx2lyx/lyx_2_2.py
index 12ccd4a..ced6482 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 9cda3d7..a39aaad 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')