From: Richard Heck Date: Wed, 14 Dec 2016 03:03:59 +0000 (-0500) Subject: Simplify some lyx2lyx code. X-Git-Tag: 2.3.0alpha1~625 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=7a584f71bd642693fa484246e209388e9500ea07;p=features.git Simplify some lyx2lyx code. Also, if the local layout we are removing is all there was, then we can remove the entire block. --- diff --git a/lib/lyx2lyx/lyx_2_3.py b/lib/lyx2lyx/lyx_2_3.py index c1f28446c3..322f495991 100644 --- a/lib/lyx2lyx/lyx_2_3.py +++ b/lib/lyx2lyx/lyx_2_3.py @@ -200,47 +200,48 @@ def revert_beamer_article_styles(document): if document.textclass == "scrarticle-beamer": inclusion = "scrartcl.layout" - while True: - i = find_token(document.header, "\\begin_local_layout", 0) - if i == -1: - k = find_token(document.header, "\\language", 0) - if k == -1: - # this should not happen - document.warning("Malformed LyX document! No \\language header found!") - break - document.header[k-1 : k-1] = ["\\begin_local_layout", "\\end_local_layout"] - i = find_token(document.header, "\\begin_local_layout", 0) - if i != -1: - j = find_end_of(document.header, i, "\\begin_local_layout", "\\end_local_layout") - if j == -1: - # this should not happen - break - - document.header[i+1 : i+1] = ["### Inserted by lyx2lyx (more [scr]article styles) ###", - "Input " + inclusion, - "Input beamer.layout", - "Provides geometry 0", - "Provides hyperref 0", - "DefaultFont", - " Family Roman", - " Series Medium", - " Shape Up", - " Size Normal", - " Color None", - "EndFont", - "Preamble", - " \\usepackage{beamerarticle,pgf}", - " % this default might be overridden by plain title style", - " \\newcommand\makebeamertitle{\\frame{\\maketitle}}%", - " \\AtBeginDocument{", - " \\let\\origtableofcontents=\\tableofcontents", - " \\def\\tableofcontents{\\@ifnextchar[{\\origtableofcontents}{\\gobbletableofcontents}}", - " \\def\\gobbletableofcontents#1{\\origtableofcontents}", - " }", - "EndPreamble", - "### End of insertion by lyx2lyx (more [scr]article styles) ###"] + i = find_token(document.header, "\\begin_local_layout", 0) + if i == -1: + k = find_token(document.header, "\\language", 0) + if k == -1: + # this should not happen + document.warning("Malformed LyX document! No \\language header found!") + return + document.header[k-1 : k-1] = ["\\begin_local_layout", "\\end_local_layout"] + i = k - 1 + + j = find_end_of(document.header, i, "\\begin_local_layout", "\\end_local_layout") + if j == -1: + # this should not happen + document.warning("Malformed LyX document: Can't find end of local layout!") return + document.header[i+1 : i+1] = [ + "### Inserted by lyx2lyx (more [scr]article styles) ###", + "Input " + inclusion, + "Input beamer.layout", + "Provides geometry 0", + "Provides hyperref 0", + "DefaultFont", + " Family Roman", + " Series Medium", + " Shape Up", + " Size Normal", + " Color None", + "EndFont", + "Preamble", + " \\usepackage{beamerarticle,pgf}", + " % this default might be overridden by plain title style", + " \\newcommand\makebeamertitle{\\frame{\\maketitle}}%", + " \\AtBeginDocument{", + " \\let\\origtableofcontents=\\tableofcontents", + " \\def\\tableofcontents{\\@ifnextchar[{\\origtableofcontents}{\\gobbletableofcontents}}", + " \\def\\gobbletableofcontents#1{\\origtableofcontents}", + " }", + "EndPreamble", + "### End of insertion by lyx2lyx (more [scr]article styles) ###" + ] + def convert_beamer_article_styles(document): " Remove included (scr)article styles in beamer article " @@ -249,28 +250,30 @@ def convert_beamer_article_styles(document): if document.textclass not in beamer_articles: return - while True: - i = find_token(document.header, "\\begin_local_layout", 0) - if i == -1: - return + i = find_token(document.header, "\\begin_local_layout", 0) + if i == -1: + return - j = find_end_of(document.header, i, "\\begin_local_layout", "\\end_local_layout") - if j == -1: - # this should not happen - break + j = find_end_of(document.header, i, "\\begin_local_layout", "\\end_local_layout") + if j == -1: + # this should not happen + document.warning("Malformed LyX document: Can't find end of local layout!") + return - k = find_token(document.header, "### Inserted by lyx2lyx (more [scr]article styles) ###", i, j) - if k != -1: - l = find_token(document.header, "### End of insertion by lyx2lyx (more [scr]article styles) ###", i, j) - if l == -1: - # this should not happen - document.warning("End of lyx2lyx local layout insertion not found!") - break + k = find_token(document.header, "### Inserted by lyx2lyx (more [scr]article styles) ###", i, j) + if k != -1: + l = find_token(document.header, "### End of insertion by lyx2lyx (more [scr]article styles) ###", i, j) + if l == -1: + # this should not happen + document.warning("End of lyx2lyx local layout insertion not found!") + return + if k == i + 1 and l == j - 1: + # that was all the local layout there was + document.header[i : j + 1] = [] + else: document.header[k : l + 1] = [] - return - def revert_bosnian(document): "Set the document language to English but assure Bosnian output" @@ -612,7 +615,6 @@ def revert_iopart(document): "Input stdlayouts.inc", "### End of insertion by lyx2lyx (stdlayouts) ###" ] - return def convert_iopart(document): @@ -643,8 +645,6 @@ def convert_iopart(document): else: document.header[k : l + 1] = [] - return - ## # Conversion hub