]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/lyxconvert_216.py
Fix lyx2lyx to handle reLyX files
[lyx.git] / lib / lyx2lyx / lyxconvert_216.py
index 66c1aa059846525e584765a5b248f2d3bb6cab2e..f95c6e86f0145ba24d391de30f47a65a33e5adca 100644 (file)
@@ -150,14 +150,14 @@ def update_tabular(lines):
                     paragraph = []
                     if cell_info[m][4] == '1':
                         l = j
-                        paragraph.extend(cell_content[j][k])
+                        paragraph = paragraph + cell_content[j][k]
                         while cell_info[m][4] == '1':
                             m = m + columns
                             l = l + 1
-                            paragraph.extend(cell_content[l][k])
+                            paragraph = paragraph + cell_content[l][k]
                     else:
                         paragraph = cell_content[j][k]
-                    tmp.extend(set_paragraph_properties(paragraph, prop_dict))
+                    tmp = tmp + set_paragraph_properties(paragraph, prop_dict)
                 
                 tmp.append('\\end_inset ')
                 tmp.append('</Cell>')
@@ -169,10 +169,7 @@ def update_tabular(lines):
         tmp.append('\\end_inset ')
         tmp.append('')
         tmp.append('')
-        tail = lines[i:]
-        lines[i:] = []
-        lines.extend(tmp)
-        lines.extend(tail)
+        lines[i:i] = tmp
 
         i = i + len(tmp)
 
@@ -220,6 +217,8 @@ def set_paragraph_properties(lines, prop_dict):
 
     # remove final char properties
     n = len(lines)
+    changed_prop = []
+
     while n:
         n = n - 1
         if not lines[n]:
@@ -230,6 +229,7 @@ def set_paragraph_properties(lines, prop_dict):
             result = prop_exp.match(lines[n])
             prop = result.group(1)
             if prop in properties:
+                changed_prop.append(prop)
                 prop_dict[prop] = result.group(2)
                 del lines[n]
                 continue
@@ -240,6 +240,13 @@ def set_paragraph_properties(lines, prop_dict):
                 lines.append('')
         break
 
+    for line in lines[end:]:
+        if line[:1] == '\\':
+            result = prop_exp.match(line)
+            prop = result.group(1)
+            if prop in properties and prop not in changed_prop:
+                prop_dict[prop] = result.group(2)
+
     if not lines[start:] and not lines[end:]:
         return []