commit 8573391aeeeeb2a611197c52e71ca4ae7743b2ca
Author: Richard Kimberly Heck <[email protected]>
Date: Sat Jul 21 22:32:39 2018 -0400
Try to speed up convert_phrases by re-ordering the loops. Part of #11200.
---
lib/lyx2lyx/lyx_2_2.py | 36 ++++++++++++++++++------------------
1 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/lib/lyx2lyx/lyx_2_2.py b/lib/lyx2lyx/lyx_2_2.py
index 0a2722c..5f21a7c 100644
--- a/lib/lyx2lyx/lyx_2_2.py
+++ b/lib/lyx2lyx/lyx_2_2.py
@@ -738,24 +738,24 @@ def convert_phrases(document):
if document.backend != "latex":
return
- for phrase in phrases:
- i = 0
- while i < len(document.body):
- if document.body[i] and document.body[i][0] == "\\":
- words = document.body[i].split()
- if len(words) > 1 and words[0] == "\\begin_inset" and \
- words[1] in ["CommandInset", "External", "Formula",
"Graphics", "listings"]:
- # must not replace anything in insets that store LaTeX
contents in .lyx files
- # (math and command insets without overridden read() and
write() methods)
- j = find_end_of_inset(document.body, i)
- if j == -1:
- document.warning("Malformed LyX document: Can't find
end of inset at line " + str(i))
- i += 1
- else:
- i = j
- else:
+ i = 0
+ while i < len(document.body):
+ if document.body[i] and document.body[i][0] == "\\":
+ words = document.body[i].split()
+ if len(words) > 1 and words[0] == "\\begin_inset" and \
+ words[1] in ["CommandInset", "External", "Formula", "Graphics",
"listings"]:
+ # must not replace anything in insets that store LaTeX
contents in .lyx files
+ # (math and command insets without overridden read() and
write() methods)
+ j = find_end_of_inset(document.body, i)
+ if j == -1:
+ document.warning("Malformed LyX document: Can't find end
of inset at line %d" % (i))
i += 1
- continue
+ else:
+ i = j
+ else:
+ i += 1
+ continue
+ for phrase in phrases:
j = document.body[i].find(phrase)
if j == -1:
i += 1
@@ -767,7 +767,7 @@ def convert_phrases(document):
document.body.insert(i+1, back)
# We cannot use SpecialChar since we do not know whether we
are outside passThru
document.body[i] = front + "\\SpecialCharNoPassThru \\" +
phrase
- i += 1
+ i += 1
def revert_phrases(document):