]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/lyx_2_0.py
Clarify convert_rule routine. A bit.
[lyx.git] / lib / lyx2lyx / lyx_2_0.py
index bf891087a192bee743ea7ce3773d65d0f349c283..4d3228abdb8bee5d7b2516eeabe1a5d347263207 100644 (file)
@@ -1386,12 +1386,14 @@ def convert_math_output(document):
         return
     rgx = re.compile(r'\\html_use_mathml\s+(\w+)')
     m = rgx.match(document.header[i])
-    if rgx:
-        newval = "0" # MathML
-        val = m.group(1)
-        if val != "true":
-            newval = "2" # Images
-        document.header[i] = "\\html_math_output " + newval
+    newval = "0" # MathML
+    if m:
+      val = m.group(1)
+      if val != "true":
+        newval = "2" # Images
+    else:
+      document.warning("Can't match " + document.header[i])
+    document.header[i] = "\\html_math_output " + newval
 
 
 def revert_math_output(document):
@@ -2252,44 +2254,44 @@ def convert_rule(document):
     i = 0
     while True:
       i = find_token(document.body, "\\lyxline" , i)
-      if i != -1:
-        j = find_token(document.body, "\\color" , i - 2)
-        if j == i - 2:
-          color = document.body[j] + '\n'
-        else:
-          color = ''
-        k = find_token(document.body, "\\begin_layout Standard" , i - 4)
-        # we need to handle the case that \lyxline is in a separate paragraph and that it is colored
-        # the result is then an extra empty paragraph which we get by adding an empty ERT inset
-        if k == i - 4 and j == i - 2 and document.body[i - 1] == '':
-          layout = '\\begin_inset ERT\nstatus collapsed\n\n\\begin_layout Plain Layout\n\n\n\\end_layout\n\n\\end_inset\n' \
-            + '\\end_layout\n\n' \
-            + '\\begin_layout Standard\n'
-        elif k == i - 2 and document.body[i - 1] == '':
-          layout = ''
-        else:
-          layout = '\\end_layout\n\n' \
-            + '\\begin_layout Standard\n'
-        l = find_token(document.body, "\\begin_layout Standard" , i + 4)
-        if l == i + 4 and document.body[i + 1] == '':
-          layout2 = ''
-        else:
-          layout2 = '\\end_layout\n' \
-            + '\n\\begin_layout Standard\n'
-        subst = layout \
-          + '\\noindent\n\n' \
-          + color \
-          + '\\begin_inset CommandInset line\n' \
-          + 'LatexCommand rule\n' \
-          + 'offset "0.5ex"\n' \
-          + 'width "100line%"\n' \
-          + 'height "1pt"\n' \
-          + '\n\\end_inset\n\n\n' \
-          + layout2
-        document.body[i] = subst
-        i += 1
-      else:
+      if i == -1:
         return
+        
+      j = find_token(document.body, "\\color" , i - 2)
+      if j == i - 2:
+        color = document.body[j] + '\n'
+      else:
+        color = ''
+      k = find_token(document.body, "\\begin_layout Standard" , i - 4)
+      # we need to handle the case that \lyxline is in a separate paragraph and that it is colored
+      # the result is then an extra empty paragraph which we get by adding an empty ERT inset
+      if k == i - 4 and j == i - 2 and document.body[i - 1] == '':
+        layout = '\\begin_inset ERT\nstatus collapsed\n\n\\begin_layout Plain Layout\n\n\n\\end_layout\n\n\\end_inset\n' \
+          + '\\end_layout\n\n' \
+          + '\\begin_layout Standard\n'
+      elif k == i - 2 and document.body[i - 1] == '':
+        layout = ''
+      else:
+        layout = '\\end_layout\n\n' \
+          + '\\begin_layout Standard\n'
+      l = find_token(document.body, "\\begin_layout Standard" , i + 4)
+      if l == i + 4 and document.body[i + 1] == '':
+        layout2 = ''
+      else:
+        layout2 = '\\end_layout\n' \
+          + '\n\\begin_layout Standard\n'
+      subst = layout \
+        + '\\noindent\n\n' \
+        + color \
+        + '\\begin_inset CommandInset line\n' \
+        + 'LatexCommand rule\n' \
+        + 'offset "0.5ex"\n' \
+        + 'width "100line%"\n' \
+        + 'height "1pt"\n' \
+        + '\n\\end_inset\n\n\n' \
+        + layout2
+      document.body[i] = subst
+      i += 1
 
 
 def revert_rule(document):
@@ -2297,38 +2299,39 @@ def revert_rule(document):
     i = 0
     while 1:
       i = find_token(document.body, "\\begin_inset CommandInset line" , i)
-      if i != -1:
-        # find end of inset
-        j = find_token(document.body, "\\end_inset" , i)
-        # assure we found the end_inset of the current inset
-        if j > i + 6 or j == -1:
-          document.warning("Malformed LyX document: Can't find end of line inset.")
-          return
-        # determine the optional offset
-        k = find_token(document.body, 'offset', i)
-        if k != -1 and k < j:
-          offset = document.body[k][8:]
-        else:
-          offset = '0"'
-        # determine the width
-        l = find_token(document.body, 'width', k + 1)
-        width = document.body[l][7:]
-        # determine the height
-        m = find_token(document.body, 'height', l + 1)
-        height = document.body[m][8:]
-        # remove trailing '"'
-        offset = offset[:-1]
-        width = width[:-1]
-        height = height[:-1]
-        # output the \rule command
-        if offset <> "0":
-          subst = "\\rule[" + offset + "]{" + width + "}{" + height + "}"
-        else:
-          subst = "\\rule{" + width + "}{" + height + "}"
-        document.body[i:j + 1] = put_cmd_in_ert(subst)
-        i += 1
-      else:
+      if i == -1:
         return
+      # find end of inset
+      j = find_token(document.body, "\\end_inset" , i)
+      # assure we found the end_inset of the current inset
+      if j > i + 6 or j == -1:
+        document.warning("Malformed LyX document: Can't find end of line inset.")
+        return
+      # determine the optional offset
+      k = find_token(document.body, 'offset', i, j)
+      if k != -1:
+        offset = document.body[k][8:-1]
+      else:
+        offset = ""
+      # determine the width
+      l = find_token(document.body, 'width', i, j)
+      if l != -1:
+        width = document.body[l][7:-1]
+      else:
+        width = "100col%"
+      # determine the height
+      m = find_token(document.body, 'height', i, j)
+      if m != -1:
+        height = document.body[m][8:-1]
+      else:
+        height = "1pt"
+      # output the \rule command
+      if offset:
+        subst = "\\rule[" + offset + "]{" + width + "}{" + height + "}"
+      else:
+        subst = "\\rule{" + width + "}{" + height + "}"
+      document.body[i:j + 1] = put_cmd_in_ert(subst)
+      i += 1
 
 
 def revert_diagram(document):
@@ -2375,8 +2378,8 @@ def convert_bibtex_clearpage(document):
       continue
 
     # only act if there is the option "bibtotoc"
-    m = find_token(document.body, 'options', j)
-    if m == -1 or m > k:
+    m = find_token(document.body, 'options', j, k)
+    if m == -1:
       document.warning("Can't find options for bibliography inset at line " + str(j))
       j = k
       continue