]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/parser_tools.py
Also add support for URW Garamond math fonts (via newtx)
[lyx.git] / lib / lyx2lyx / parser_tools.py
index e32ac5dc4fca7d879a933e8f9c0d7550aa800716..6d64a793ce2e3861b5a922e3930f3bd0351cc005 100644 (file)
@@ -420,12 +420,16 @@ def get_containing_inset(lines, i):
   on which the inset begins, plus the starting and ending line.
   Returns False on any kind of error or if it isn't in an inset.
   '''
   on which the inset begins, plus the starting and ending line.
   Returns False on any kind of error or if it isn't in an inset.
   '''
-  stins = find_token_backwards(lines, i, "\\begin_inset")
-  if stins == -1:
-      return False
-  endins = find_end_of_inset(lines, stins)
-  if endins < i:
-      return False
+  j = i
+  while True:
+      stins = find_token_backwards(lines, "\\begin_inset", j)
+      if stins == -1:
+          return False
+      endins = find_end_of_inset(lines, stins)
+      if endins > j:
+          break
+      j = stins - 1
+  
   inset = get_value(lines, "\\begin_inset", stins)
   if inset == "":
       # shouldn't happen
   inset = get_value(lines, "\\begin_inset", stins)
   if inset == "":
       # shouldn't happen
@@ -440,14 +444,18 @@ def get_containing_layout(lines, i):
   on which the layout begins, plus the starting and ending line.
   Returns False on any kind of error.
   '''
   on which the layout begins, plus the starting and ending line.
   Returns False on any kind of error.
   '''
-  stins = find_token_backwards(lines, i, "\\begin_layout")
-  if stins == -1:
-      return False
-  endins = find_end_of_layout(lines, stins)
-  if endins < i:
-      return False
-  lay = get_value(lines, "\\begin_layout", stins)
+  j = i
+  while True:
+      stlay = find_token_backwards(lines, "\\begin_layout", j)
+      if stlay == -1:
+          return False
+      endlay = find_end_of_layout(lines, stlay)
+      if endlay > i:
+          break
+      j = stlay - 1
+  
+  lay = get_value(lines, "\\begin_layout", stlay)
   if lay == "":
       # shouldn't happen
       return False
   if lay == "":
       # shouldn't happen
       return False
-  return (lay, stins, endins)
+  return (lay, stlay, endlay)