Do not convert dashes/hyphens in LyX-Code.

See previous commit and #10961
This commit is contained in:
Günter Milde 2018-01-10 12:05:26 +01:00
parent cb1fda9988
commit 73b6f42362
2 changed files with 24 additions and 0 deletions

View File

@ -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

View File

@ -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')