def get_containing_inset(lines, i):
'''
Finds out what kind of inset line i is within. Returns a
- list containing (i) what follows \begin_inset on the line
+ list containing (i) what follows \begin_inset on the line
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.
'''
if endins > j:
break
j = stins - 1
-
+
+ if endins < i:
+ return False
+
inset = get_value(lines, "\\begin_inset", stins)
if inset == "":
# shouldn't happen
def get_containing_layout(lines, i):
'''
Finds out what kind of layout line i is within. Returns a
- list containing what follows \begin_layout on the line
+ list containing what follows \begin_layout on the line
on which the layout begins, plus the starting and ending line
and the start of the paragraph (after all params). I.e, returns:
(layoutname, layoutstart, layoutend, startofcontent)
if endlay > i:
break
j = stlay - 1
-
+
+ if endlay < i:
+ return False
+
lay = get_value(lines, "\\begin_layout", stlay)
if lay == "":
# shouldn't happen
return False
par_params = ["\\noindent", "\\indent", "\\indent-toggle", "\\leftindent",
- "\\start_of_appendix", "\\paragraph_spacing single",
- "\\paragraph_spacing onehalf", "\\paragraph_spacing double",
- "\\paragraph_spacing other", "\\align", "\\labelwidthstring"]
+ "\\start_of_appendix", "\\paragraph_spacing", "\\align",
+ "\\labelwidthstring"]
stpar = stlay
while True:
stpar += 1
- if lines[stpar] not in par_params:
+ if lines[stpar].split(' ', 1)[0] not in par_params:
break
return (lay, stlay, endlay, stpar)
def count_pars_in_inset(lines, i):
- '''
+ '''
Counts the paragraphs within this inset
'''
ins = get_containing_inset(lines, i)
m = re.match(r'\\begin_layout (.*)', lines[j])
if m and get_containing_inset(lines, j)[0] == ins[0]:
pars += 1
-
+
return pars
def find_end_of_sequence(lines, i):
- '''
+ '''
Returns the end of a sequence of identical layouts.
'''
lay = get_containing_layout(lines, i)