From cc56c64ede19fc0e95e6fe1c5ccf86f220019b83 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Sun, 27 Jul 2014 11:30:25 +0200 Subject: [PATCH] Fix beamer block conversion when arguments are in multiple ERTS. Fixes second part of #9208. --- lib/lyx2lyx/lyx_2_1.py | 54 +++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/lib/lyx2lyx/lyx_2_1.py b/lib/lyx2lyx/lyx_2_1.py index ae4c39069f..acb83c45d8 100644 --- a/lib/lyx2lyx/lyx_2_1.py +++ b/lib/lyx2lyx/lyx_2_1.py @@ -3090,7 +3090,7 @@ def convert_beamerblocks(document): tok = document.body[ertcontdivline].find('>{') if tok == -1: regexp = re.compile(r'.*>\{', re.IGNORECASE) - ertcontdivline = find_re(document.body, regexp, ertcontfirstline, ertcontlastline) + ertcontdivline = find_re(document.body, regexp, ertcontfirstline, lastertend) tok = document.body[ertcontdivline].find('>{') if tok != -1: if ertcontfirstline < ertcontlastline: @@ -3112,30 +3112,30 @@ def convert_beamerblocks(document): tok = document.body[ertcontdivline].find('>') if tok == -1: regexp = re.compile(r'.*>', re.IGNORECASE) - ertcontdivline = find_re(document.body, regexp, ertcontfirstline, ertcontlastline) + ertcontdivline = find_re(document.body, regexp, ertcontfirstline, lastertend) tok = document.body[ertcontdivline].find('>') - if tok != -1: - tokk = document.body[ertcontdivline].find('{') - if tokk == -1: - regexp = re.compile(r'.*\{', re.IGNORECASE) - ertcontdivlinetwo = find_re(document.body, regexp, ertcontfirstline, ertcontlastline) - tokk = document.body[ertcontdivlinetwo].find('{') - if tokk != -1: - if ertcontfirstline < ertcontlastline: - # Multiline ERT. Might contain TeX code. Embrace in ERT. - document.body[ertcontlastline : ertcontlastline + 1] = [ - document.body[ertcontlastline], '\\end_layout', '', '\\end_inset'] - document.body[ertcontdivline : ertcontdivlinetwo + 1] = [document.body[ertcontdivline][:tok], - '\\end_layout', '', '\\end_inset', '', '\\end_layout', '', - '\\end_inset', '', '', '\\begin_inset Argument 2', - 'status collapsed', '', '\\begin_layout Plain Layout', - '\\begin_inset ERT', '', 'status open' '', '\\begin_layout Plain Layout', - document.body[ertcontdivlinetwo][tokk + 1:]] - else: - document.body[ertcontdivline : ertcontdivlinetwo + 1] = [document.body[ertcontdivline][:tok], - '\\end_layout', '', '\\end_inset', '', '', '\\begin_inset Argument 2', - 'status collapsed', '', '\\begin_layout Plain Layout', - document.body[ertcontdivlinetwo][tokk + 1:]] + if tok != -1: + tokk = document.body[ertcontdivline].find('{') + if tokk == -1: + regexp = re.compile(r'.*\{', re.IGNORECASE) + ertcontdivlinetwo = find_re(document.body, regexp, ertcontfirstline, lastertend) + tokk = document.body[ertcontdivlinetwo].find('{') + if tokk != -1: + if ertcontfirstline < ertcontlastline: + # Multiline ERT. Might contain TeX code. Embrace in ERT. + document.body[ertcontlastline : ertcontlastline + 1] = [ + document.body[ertcontlastline], '\\end_layout', '', '\\end_inset'] + document.body[ertcontdivline : ertcontdivlinetwo + 1] = [document.body[ertcontdivline][:tok], + '\\end_layout', '', '\\end_inset', '', '\\end_layout', '', + '\\end_inset', '', '', '\\begin_inset Argument 2', + 'status collapsed', '', '\\begin_layout Plain Layout', + '\\begin_inset ERT', '', 'status open' '', '\\begin_layout Plain Layout', + document.body[ertcontdivlinetwo][tokk + 1:]] + else: + document.body[ertcontdivline : ertcontdivlinetwo + 1] = [document.body[ertcontdivline][:tok], + '\\end_layout', '', '\\end_inset', '', '', '\\begin_inset Argument 2', + 'status collapsed', '', '\\begin_layout Plain Layout', + document.body[ertcontdivlinetwo][tokk + 1:]] # Convert to ArgInset if ertcontfirstline < ertcontlastline: # Multiline ERT. Might contain TeX code. Embrace in ERT. @@ -3171,7 +3171,7 @@ def convert_beamerblocks(document): tok = document.body[ertcontdivline].find('}<') if tok == -1: regexp = re.compile(r'.*\}<', re.IGNORECASE) - ertcontdivline = find_re(document.body, regexp, ertcontfirstline, ertcontlastline) + ertcontdivline = find_re(document.body, regexp, ertcontfirstline, lastertend) tok = document.body[ertcontdivline].find('}<') if tok != -1: if ertcontfirstline < ertcontlastline: @@ -3193,13 +3193,13 @@ def convert_beamerblocks(document): tok = document.body[ertcontdivline].find('}') if tok == -1: regexp = re.compile(r'.*\}', re.IGNORECASE) - ertcontdivline = find_re(document.body, regexp, ertcontfirstline, ertcontlastline) + ertcontdivline = find_re(document.body, regexp, ertcontfirstline, lastertend) tok = document.body[ertcontdivline].find('}') if tok != -1: tokk = document.body[ertcontdivline].find('<') if tokk == -1: regexp = re.compile(r'.*<', re.IGNORECASE) - ertcontdivlinetwo = find_re(document.body, regexp, ertcontfirstline, ertcontlastline) + ertcontdivlinetwo = find_re(document.body, regexp, ertcontfirstline, lastertend) tokk = document.body[ertcontdivlinetwo].find('<') if tokk != -1: if ertcontfirstline < ertcontlastline: -- 2.39.2