commit fc2db913e015b41fe63e681667cbd5c5a4d5a41f
Author: Uwe Stöhr <uwesto...@lyx.org>
Date:   Mon Apr 17 22:13:46 2017 +0200

    lyx2lyx/lyx_2_0.py: fix box reversion and conversion routines
---
 lib/lyx2lyx/lyx_2_0.py |   43 +++++++++++++++----------------------------
 1 files changed, 15 insertions(+), 28 deletions(-)

diff --git a/lib/lyx2lyx/lyx_2_0.py b/lib/lyx2lyx/lyx_2_0.py
index 1f10154..324c413 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):

Reply via email to