From 8a14c4466daf0f2ab6b2ffa3b6d2d8a8a1376fd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B0=D0=BC=D0=BE=D1=83=D0=BA=D0=B8=D0=BD=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Wed, 8 Dec 2010 14:28:09 +0300 Subject: [PATCH] Elements of the '+', '-' do not operate within the area for the template in the format kde. --- pym/format/kde.py | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/pym/format/kde.py b/pym/format/kde.py index 787a51f..d3c681f 100644 --- a/pym/format/kde.py +++ b/pym/format/kde.py @@ -35,8 +35,23 @@ class kde(samba): def __init__(self,text): samba.__init__(self,text) - - + + def removeSymbolR(self, text): + """Удаляет первый символ названия переменной в строке + + Если первый встречающийся символ с начала строки + '!' то он из этой строки будет удален, + если перед этим символом были пробельные символы, + то они будут сохранены, так-же если в строке есть символ + перевода строки он будет удален. + """ + reTerm = re.compile("^[ \t]*(\!)") + textNS = text.replace("\n","") + res = reTerm.search(textNS) + if res: + textNS = textNS[res.start():res.end()-1] + textNS[res.end():] + return textNS + def _textToXML(self): """Преобразует текст в XML""" blTmp = self.blocTextObj.findBloc(self.text,self.reHeader,self.reBody) @@ -98,16 +113,14 @@ class kde(samba): fields = self._splitToFields(bodys[z]) for f in fields: if f.name != False and f.value!=False and f.br!=False: - # Обработка условий для samba - if f.name[0] == "!" or f.name[0] == "-" or\ - f.name[0] == "+": - qns = self.removeSymbolTerm(f.br) + # Обработка условий для kde + if f.name[0] == "!": + qns = self.removeSymbolR(f.br) xmlField = docObj.createField("var", - [qns], - f.name[1:], [f.value]) - if f.name[0] == "!": - # Удаляемое в дальнейшем поле - docObj.setActionField(xmlField, "drop") + [qns], + f.name[1:], [f.value]) + # Удаляемое в дальнейшем поле + docObj.setActionField(xmlField, "drop") else: docObj.createField("var",[f.br.replace("\n","")], f.name, [f.value])