The branch, master, has been updated.

- Log -----------------------------------------------------------------

commit 280861cd7d872702f4b3241974b75c56142093e7
Author: Juergen Spitzmueller <[email protected]>
Date:   Sun Dec 9 11:40:14 2012 +0100

    Consider paragraph params when placing arguments at paragraph start (#8449)

diff --git a/lib/lyx2lyx/lyx_2_1.py b/lib/lyx2lyx/lyx_2_1.py
index 358da24..b4a7fbf 100644
--- a/lib/lyx2lyx/lyx_2_1.py
+++ b/lib/lyx2lyx/lyx_2_1.py
@@ -1269,6 +1269,7 @@ def revert_latexargs(document):
             continue
         parbeg = parent[1]
         parend = parent[2]
+        realparbeg = parent[3]
         # Collect all arguments in this paragraph 
         realparend = parend
         for p in range(parbeg, parend):
@@ -1295,9 +1296,9 @@ def revert_latexargs(document):
             subst += args[f]
             del args[f]
         # Insert the sorted arg insets at paragraph begin
-        document.body[parbeg + 1:parbeg + 1] = subst
+        document.body[realparbeg + 1 : realparbeg + 1] = subst
 
-        i = parbeg + 1 + len(subst)
+        i = realparbeg + 1 + len(subst)
 
 
 def revert_Argument_to_TeX_brace(document, line, n, nmax, environment):
@@ -1785,7 +1786,7 @@ def revert_itemargs(document):
             document.warning("Malformed lyx document: Can't find parent 
paragraph layout")
             i = i + 1
             continue
-        parbeg = parent[1]
+        parbeg = parent[3]
         beginPlain = find_token(document.body, "\\begin_layout Plain Layout", 
i)
         endPlain = find_end_of_layout(document.body, beginPlain)
         content = document.body[beginPlain + 1 : endPlain]
@@ -2094,6 +2095,7 @@ def revert_beamerargs(document):
             continue
         parbeg = parent[1]
         parend = parent[2]
+        realparbeg = parent[3]
         layoutname = parent[0]
         realparend = parend
         for p in range(parbeg, parend):
@@ -2135,7 +2137,7 @@ def revert_beamerargs(document):
                             pre += put_cmd_in_ert("[") + argcontent + 
put_cmd_in_ert("]")
                         pre += put_cmd_in_ert("{")
                         document.body[parbeg] = "\\begin_layout Standard"
-                        document.body[parbeg + 1 : parbeg + 1] = pre
+                        document.body[realparbeg + 1 : realparbeg + 1] = pre
                         pe = find_end_of_layout(document.body, parbeg)
                         post = put_cmd_in_ert("}")
                         document.body[pe : pe] = post
@@ -2154,7 +2156,7 @@ def revert_beamerargs(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("[") + content + 
put_cmd_in_ert("]")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
             if layoutname == "Overprint":
                 m = rx.match(document.body[p])
                 if m:
@@ -2169,7 +2171,7 @@ def revert_beamerargs(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("[") + content + 
put_cmd_in_ert("]")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
             if layoutname == "OverlayArea":
                 m = rx.match(document.body[p])
                 if m:
@@ -2184,7 +2186,7 @@ def revert_beamerargs(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("{") + content + 
put_cmd_in_ert("}")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
             if layoutname in list_layouts:
                 m = rx.match(document.body[p])
                 if m:
@@ -2199,7 +2201,7 @@ def revert_beamerargs(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("<") + content + 
put_cmd_in_ert(">")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
                     elif argnr == "item:1":
                         j = find_end_of_inset(document.body, i)
                         # Find containing paragraph layout
@@ -2208,7 +2210,7 @@ def revert_beamerargs(document):
                         content = document.body[beginPlain + 1 : endPlain]
                         del document.body[i:j+1]
                         subst = put_cmd_in_ert("[") + content + 
put_cmd_in_ert("]")
-                        document.body[parbeg + 1 : parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
                     elif argnr == "item:2":
                         j = find_end_of_inset(document.body, i)
                         # Find containing paragraph layout
@@ -2217,7 +2219,7 @@ def revert_beamerargs(document):
                         content = document.body[beginPlain + 1 : endPlain]
                         del document.body[i:j+1]
                         subst = put_cmd_in_ert("<") + content + 
put_cmd_in_ert(">")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
             if layoutname in quote_layouts:
                 m = rx.match(document.body[p])
                 if m:
@@ -2232,7 +2234,7 @@ def revert_beamerargs(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("<") + content + 
put_cmd_in_ert(">")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
             if layoutname in corollary_layouts:
                 m = rx.match(document.body[p])
                 if m:
@@ -2247,7 +2249,7 @@ def revert_beamerargs(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("[") + content + 
put_cmd_in_ert("]")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
         
         i = realparend
 
@@ -2276,6 +2278,7 @@ def revert_beamerargs2(document):
             continue
         parbeg = parent[1]
         parend = parent[2]
+        realparbeg = parent[3]
         layoutname = parent[0]
         realparend = parend
         for p in range(parbeg, parend):
@@ -2302,7 +2305,7 @@ def revert_beamerargs2(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("<") + content + 
put_cmd_in_ert(">")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
             if layoutname == "OverlayArea":
                 m = rx.match(document.body[p])
                 if m:
@@ -2317,7 +2320,7 @@ def revert_beamerargs2(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("{") + content + 
put_cmd_in_ert("}")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
             if layoutname == "AgainFrame":
                 m = rx.match(document.body[p])
                 if m:
@@ -2332,7 +2335,7 @@ def revert_beamerargs2(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("[<") + content + 
put_cmd_in_ert(">]")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
         i = realparend
 
 
@@ -2357,6 +2360,7 @@ def revert_beamerargs3(document):
             continue
         parbeg = parent[1]
         parend = parent[2]
+        realparbeg = parent[3]
         layoutname = parent[0]
         realparend = parend
         for p in range(parbeg, parend):
@@ -2377,7 +2381,7 @@ def revert_beamerargs3(document):
                         # Remove arg inset
                         del document.body[p : endInset + 1]
                         subst = put_cmd_in_ert("<") + content + 
put_cmd_in_ert(">")
-                        document.body[parbeg + 1:parbeg + 1] = subst
+                        document.body[realparbeg + 1 : realparbeg + 1] = subst
         i = realparend
 
 
diff --git a/lib/lyx2lyx/parser_tools.py b/lib/lyx2lyx/parser_tools.py
index 6d64a79..24bf91c 100644
--- a/lib/lyx2lyx/parser_tools.py
+++ b/lib/lyx2lyx/parser_tools.py
@@ -128,7 +128,8 @@ get_containing_inset(lines, i):
   on line 306.
 
 get_containing_layout(lines, i):
-  As get_containing_inset, but for layout.
+  As get_containing_inset, but for layout. Additionally returns the
+  position of real paragraph start (after par params) as 4th value.
 
 
 find_nonempty_line(lines, start[, end):
@@ -441,7 +442,8 @@ def get_containing_layout(lines, i):
   ''' 
   Finds out what kind of layout line i is within. Returns a 
   list containing (i) what follows \begin_layout on the the line 
-  on which the layout begins, plus the starting and ending line.
+  on which the layout begins, plus the starting and ending line
+  and the start of the apargraph (after all params).
   Returns False on any kind of error.
   '''
   j = i
@@ -458,4 +460,14 @@ def get_containing_layout(lines, i):
   if lay == "":
       # shouldn't happen
       return False
-  return (lay, stlay, endlay)
+  par_params = ["\\noindent", "\\indent", "\\indent-toggle", "\\leftindent",
+                "\\start_of_appendix", "\\paragraph_spacing single",
+                "\\paragraph_spacing onehalf", "\\paragraph_spacing double",
+                "\\paragraph_spacing other", "\\align", "\\labelwidthstring"]
+  stpar = stlay
+  while True:
+      if lines[stpar + 1] in par_params:
+          stpar += 1
+      else:
+          break
+  return (lay, stlay, endlay, stpar)

-----------------------------------------------------------------------

Summary of changes:
 lib/lyx2lyx/lyx_2_1.py      |   36 ++++++++++++++++++++----------------
 lib/lyx2lyx/parser_tools.py |   18 +++++++++++++++---
 2 files changed, 35 insertions(+), 19 deletions(-)


hooks/post-receive
-- 
The LyX Source Repository

Reply via email to