]> git.lyx.org Git - features.git/commitdiff
Fix data loss in user guide conversion to 2.0.x
authorGeorg Baum <baum@lyx.org>
Sun, 27 Apr 2014 16:06:34 +0000 (18:06 +0200)
committerGeorg Baum <baum@lyx.org>
Sun, 27 Apr 2014 16:06:34 +0000 (18:06 +0200)
When doing the lyx2lyx round trip of the 2.0.8 user guide from format
413 -> 474 -> 413 you do not get a zero diff. The most important problem is
caused by the conversion of the argument insets to the old syntax: This
conversion adds an additional empty line (harmless), and it destroys the
document structure if the first inset in e.g. a subsection is not an argument
inset, but e.g. an index or label inset.
The fix is quite easy: Ensure that the paragraph begin is set to the first
argument inset.

lib/lyx2lyx/lyx_2_1.py
status.21x

index 9ecd232b382be8d26bc0fb6809cd047fb8e22891..6436ec18481526b4bc9a7375649aa10c5e728500 100644 (file)
@@ -1552,12 +1552,18 @@ def revert_latexargs(document):
             continue
         parbeg = parent[1]
         parend = parent[2]
-        realparbeg = parent[3]
-        # Collect all arguments in this paragraph 
+        # Do not set realparbeg to parent[3], since this does not work if we
+        # have another inset (e.g. label or index) before the first argument
+        # inset (this is the case in the user guide of LyX 2.0.8)
+        realparbeg = -1
+        # Collect all arguments in this paragraph
         realparend = parend
         for p in range(parbeg, parend):
             m = rx.match(document.body[p])
             if m:
+                if realparbeg < 0:
+                    # This is the first argument inset
+                    realparbeg = p
                 val = int(m.group(1))
                 j = find_end_of_inset(document.body, p)
                 # Revert to old syntax
@@ -1573,8 +1579,11 @@ def revert_latexargs(document):
                 del document.body[p : j + 1]
             if p >= realparend:
                 break
+        if realparbeg < 0:
+            # No argument inset found
+            realparbeg = parent[3]
         # Now sort the arg insets
-        subst = [""]
+        subst = []
         for f in sorted(args):
             subst += args[f]
             del args[f]
index fa59799dfc133259e4ece9b9cc6bad15cb7eac3f..c3d375ef5720749ab3cf7195559a9f45165dc0ea 100644 (file)
@@ -67,6 +67,8 @@ What's new
 - Add \justification parameter when converting to 2.1 format (avoids when
   converting back to 2.0 format).
 
+- Fix conversion of argument insets fromn 2.1 to 2.0 format.
+
 
 * USER INTERFACE