From: Uwe Stöhr Date: Mon, 17 Apr 2017 20:13:46 +0000 (+0200) Subject: lyx2lyx/lyx_2_0.py: fix box reversion and conversion routines X-Git-Tag: 2.2.3~14 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=fc2db913e015b41fe63e681667cbd5c5a4d5a41f;p=features.git lyx2lyx/lyx_2_0.py: fix box reversion and conversion routines --- diff --git a/lib/lyx2lyx/lyx_2_0.py b/lib/lyx2lyx/lyx_2_0.py index 1f10154440..324c4130b8 100644 --- a/lib/lyx2lyx/lyx_2_0.py +++ b/lib/lyx2lyx/lyx_2_0.py @@ -1503,7 +1503,7 @@ def revert_argument(document): def revert_makebox(document): " Convert \\makebox to TeX code " i = 0 - while 1: + while True: i = find_token(document.body, '\\begin_inset Box', i) if i == -1: break @@ -1517,17 +1517,16 @@ def revert_makebox(document): document.warning("Malformed LyX document: Can't find layout in box.") i = z continue - # by looking before the layout we make sure we're actually finding - # an option, not text. - j = find_token(document.body, 'use_makebox', i, blay) - if j == -1: - i = z - continue - + j = find_token(document.body, 'use_makebox', i) + if j == -1 or j != i +6: + document.warning("Malformed LyX document: Can't find use_makebox statement in box.") + i = z + continue + # delete use_makebox if not check_token(document.body[i], "\\begin_inset Box Frameless") \ or get_value(document.body, 'use_makebox', j) != 1: del document.body[j] - i = z + i += 1 continue bend = find_end_of_layout(document.body, blay) if bend == -1 or bend > z: @@ -1550,30 +1549,18 @@ def revert_makebox(document): def convert_use_makebox(document): " Adds use_makebox option for boxes " i = 0 - while 1: + while True: i = find_token(document.body, '\\begin_inset Box', i) if i == -1: return - # all of this is to make sure we actually find the use_parbox - # that is an option for this box, not some text elsewhere. - z = find_end_of_inset(document.body, i) - if z == -1: - document.warning("Can't find end of box inset!!") - i += 1 - continue - blay = find_token(document.body, "\\begin_layout", i, z) - if blay == -1: - document.warning("Can't find layout in box inset!!") - i = z - continue - # so now we are looking for use_parbox before the box's layout - k = find_token(document.body, 'use_parbox', i, blay) - if k == -1: + k = find_token(document.body, 'use_parbox', i) + if k == -1 or k != i + 5: document.warning("Malformed LyX document: Can't find use_parbox statement in box.") - i = z + i += 1 continue - document.body.insert(k + 1, "use_makebox 0") - i = blay + 1 # not z + 1 (box insets may be nested) + if k == i + 5: + document.body.insert(k + 1, "use_makebox 0") + i += 1 def revert_IEEEtran(document):