Added support ' and " for template header.

develop
Самоукин Алексей 14 years ago
parent a584d7bdab
commit 3deec569e4

@ -367,6 +367,68 @@ class _terms(_error, _shareTermsFunction):
return False
return True
def splitParLine(self, linePar):
'''Split params line'''
def splitQuote(listPar, quoteSymbol):
listTerm = map(lambda x: x+quoteSymbol, ("=",">","<"))
flagQ = False
mass = []
v = ""
for i in listPar:
if i.count(quoteSymbol)==1:
if flagQ and i.endswith(quoteSymbol):
v = v + " " + i
mass.append(v)
v = ""
flagQ = False
elif filter(lambda x: x in i, listTerm):
flagQ = True
v = i
else:
mass.append(i)
elif flagQ:
v = v + " " + i
else:
mass.append(i)
foundPar = list(set(mass)-set(listPar))
return not flagQ, filter(lambda x: not x in foundPar, mass),foundPar
listPar = re.split("\s+",linePar)
flagFoundQ = "'" in linePar
flagFoundQQ = '"' in linePar
if flagFoundQ and flagFoundQQ:
flagQ, listSplQPar, listFoundQPar = splitQuote(listPar, "'")
if flagQ:
flagQQ, listSplQQPar, listFoundQQPar = splitQuote(listSplQPar,
'"')
if flagQQ:
listPar = listSplQQPar + listFoundQPar + listFoundQQPar
elif flagFoundQQ:
flagQQ, listSplQQPar, listFoundQQPar = splitQuote(listPar, '"')
if flagQQ:
listPar = listSplQQPar + listFoundQQPar
elif flagFoundQ:
flagQ, listSplQPar, listFoundQPar = splitQuote(listPar, "'")
if flagQ:
listPar = listSplQPar + listFoundQPar
if flagFoundQ:
listQPar = []
for par in listPar:
if par.endswith("'"):
listQPar.append(par.replace("'",""))
else:
listQPar.append(par)
listPar = listQPar
if flagFoundQQ:
listQQPar = []
for par in listPar:
if par.endswith('"'):
listQQPar.append(par.replace('"',''))
else:
listQQPar.append(par)
listPar = listQQPar
return listPar
class fileHeader(_terms):
"""Обработка заголовков шаблонов и конфигурационных файлов
@ -459,7 +521,7 @@ class fileHeader(_terms):
self.body = self.body[reL.end():]
else:
self.body = ""
paramList = re.split("\s+",paramLine)
paramList = self.splitParLine(paramLine)
if paramList:
for i in paramList:
foundTerm = False
@ -603,7 +665,7 @@ class dirHeader(_terms):
%self.body)
flagErrorBody = True
if not flagErrorBody:
paramList = re.split("\s+",paramLine)
paramList = self.splitParLine(paramLine)
if paramList:
for i in paramList:
foundTerm = False

Loading…
Cancel
Save