-# Finds the matching \end_inset
-def find_beginning_of_inset(lines, i):
- return find_beginning_of(lines, i, "\\begin_inset", "\\end_inset")
-
-
-def find_end_of_tabular(lines, i):
- return find_end_of(lines, i, "<lyxtabular", "</lyxtabular")
-
-
-def get_tabular_lines(lines, i):
- result = []
- i = i+1
- j = find_end_of_tabular(lines, i)
- if j == -1:
- return []
-
- while i <= j:
- if check_token(lines[i], "\\begin_inset"):
- i = find_end_of_inset(lines, i)+1
- else:
- result.append(i)
- i = i+1
- return result
-
-
-def is_nonempty_line(line):
- return line != " "*len(line)
-
-
-def find_nonempty_line(lines, start, end = 0):
- if end == 0:
- end = len(lines)
- for i in xrange(start, end):
- if is_nonempty_line(lines[i]):
- return i
- return -1
+def find_end_of_layout(lines, i):
+ " Find end of layout, where lines[i] is included."
+ return find_end_of(lines, i, "\\begin_layout", "\\end_layout")
+
+
+# checks if line i is in the inset e.g., "\\begin_inset CommandInset ref"
+# if so, returns starting and ending lines
+# otherwise, returns (-1, -1)
+def get_containing_inset(lines, i, inset):
+ defval = (-1, -1)
+ stins = find_token_backwards(lines, inset, i)
+ if stins == -1:
+ return defval
+ endins = find_end_of_inset(lines, stins)
+ # note that this includes the notfound case.
+ if endins < i:
+ return defval
+ return (stins, endins)