From 4549f46a431021d6667451ab83965eca12d58f58 Mon Sep 17 00:00:00 2001 From: Richard Kimberly Heck Date: Sat, 21 Jul 2018 22:49:49 -0400 Subject: [PATCH] Speed up convert_literalparam. Part of #11200. --- lib/lyx2lyx/lyx_2_3.py | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/lib/lyx2lyx/lyx_2_3.py b/lib/lyx2lyx/lyx_2_3.py index eefbec132a..a2f37bc8d4 100644 --- a/lib/lyx2lyx/lyx_2_3.py +++ b/lib/lyx2lyx/lyx_2_3.py @@ -1502,24 +1502,29 @@ command_insets = ["bibitem", "citation", "href", "index_print", "nomenclature"] def convert_literalparam(document): " Add param literal " - for inset in command_insets: - i = 0 - while True: - i = find_token(document.body, '\\begin_inset CommandInset %s' % inset, i) - if i == -1: - break - j = find_end_of_inset(document.body, i) - if j == -1: - document.warning("Malformed LyX document: Can't find end of %s inset at line %d" % (inset, i)) - i += 1 - continue - while i < j and document.body[i].strip() != '': - i += 1 - # href is already fully latexified. Here we can switch off literal. - if inset == "href": - document.body.insert(i, "literal \"false\"") - else: - document.body.insert(i, "literal \"true\"") + pos = len("\\begin_inset CommandInset ") + i = 0 + while True: + i = find_token(document.body, '\\begin_inset CommandInset', i) + if i == -1: + break + inset = document.body[i][pos:].strip() + if not inset in command_insets: + i += 1 + continue + j = find_end_of_inset(document.body, i) + if j == -1: + document.warning("Malformed LyX document: Can't find end of %s inset at line %d" % (inset, i)) + i += 1 + continue + while i < j and document.body[i].strip() != '': + i += 1 + # href is already fully latexified. Here we can switch off literal. + if inset == "href": + document.body.insert(i, "literal \"false\"") + else: + document.body.insert(i, "literal \"true\"") + i = j + 1 def revert_literalparam(document):