fix a flaw in the loop logic
This commit is contained in:
parent
ea3323d98d
commit
001d1fa9bf
1 changed files with 24 additions and 23 deletions
|
@ -682,29 +682,30 @@ def hack_syntax(filename, lines):
|
|||
# Upconvert old radius usage
|
||||
if "1.3.7" in versions and future:
|
||||
radius_pos = wmlfind("radius=")
|
||||
scopeIter = radius_pos.iterScope()
|
||||
startline = scopeIter.lineno()
|
||||
wspace = radius_pos.text()
|
||||
wspace = wspace[:len(wspace)-len(wspace.lstrip())]
|
||||
radius_danger = False
|
||||
to_indent = []
|
||||
no_indent = []
|
||||
for pos in scopeIter:
|
||||
tag = pos.tag()
|
||||
if tag in ("[and]", "[or]", "[not]"):
|
||||
radius_danger = True
|
||||
no_indent.extend(pos.text().splitlines())
|
||||
elif tag in ("variable=", "side=", "count=", "adjacent="):
|
||||
no_indent.extend(pos.text().splitlines())
|
||||
else:
|
||||
to_add = pos.text().splitlines()
|
||||
to_add[0] = baseindent + to_add[0]
|
||||
to_indent.extend(to_add)
|
||||
if radius_danger:
|
||||
lines = lines[:startline] + [wspace + "[and]"] + to_indent +\
|
||||
[wspace + "[/and]"] + no_indent + lines[scopeIter.lineno():]
|
||||
modcount += 1
|
||||
|
||||
while radius_pos is not None:
|
||||
scopeIter = radius_pos.iterScope()
|
||||
startline = scopeIter.lineno()
|
||||
wspace = radius_pos.text()
|
||||
wspace = wspace[:len(wspace)-len(wspace.lstrip())]
|
||||
radius_danger = False
|
||||
to_indent = []
|
||||
no_indent = []
|
||||
for pos in scopeIter:
|
||||
tag = pos.tag()
|
||||
if tag in ("[and]", "[or]", "[not]"):
|
||||
radius_danger = True
|
||||
no_indent.extend(pos.text().splitlines())
|
||||
elif tag in ("variable=", "side=", "count=", "adjacent="):
|
||||
no_indent.extend(pos.text().splitlines())
|
||||
else:
|
||||
to_add = pos.text().splitlines()
|
||||
to_add[0] = baseindent + to_add[0]
|
||||
to_indent.extend(to_add)
|
||||
if radius_danger:
|
||||
lines = lines[:startline] + [wspace + "[and]"] + to_indent +\
|
||||
[wspace + "[/and]"] + no_indent + lines[scopeIter.lineno():]
|
||||
modcount += 1
|
||||
radius_pos = wmlfind("radius=", radius_pos.next())
|
||||
# More syntax transformations would go here.
|
||||
return (lines, modcount)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue