소스 검색

Solve a potential numbering issue when removing a parameter.

tags/v0.1
Ben Kurtovic 11 년 전
부모
커밋
dde883725b
1개의 변경된 파일7개의 추가작업 그리고 6개의 파일을 삭제
  1. +7
    -6
      mwparserfromhell/nodes/template.py

+ 7
- 6
mwparserfromhell/nodes/template.py 파일 보기

@@ -92,22 +92,23 @@ class Template(Node):
if showkey is None:
try:
int(name)
showkey = True
except ValueError:
showkey = False
else:
showkey = True
if not showkey:
self._surface_escape(value, "=")
param = Parameter(name, value, showkey) # CONFORM TO FORMATTING CONVENTIONS?
self.params.append(param)
return param

def remove(self, name, keep_field=False): # DON'T MESS UP NUMBERING WITH show_key = False AND keep_field = False
def remove(self, name, keep_field=False, force_no_field=False):
name = name.strip() if isinstance(name, basestring) else unicode(name)
for param in self.params:
for i, param in enumerate(self.params):
if param.name.strip() == name:
if keep_field:
return self._blank_param_value(param.value)
else:
return self.params.remove(param)
dependent = [not after.showkey for after in self.params[i+1:]]
if any(dependent) and not param.showkey and not force_no_field:
return self._blank_param_value(param.value)
return self.params.remove(param)
raise ValueError(name)

불러오는 중...
취소
저장