[Checkins] SVN: z3c.pt/trunk/src/z3c/pt/translation.py Fixed interpolation edge-case issue with, admittedly, crude logic.

Malthe Borch mborch at gmail.com
Sun Jul 6 06:25:41 EDT 2008


Log message for revision 88065:
  Fixed interpolation edge-case issue with, admittedly, crude logic.

Changed:
  U   z3c.pt/trunk/src/z3c/pt/translation.py

-=-
Modified: z3c.pt/trunk/src/z3c/pt/translation.py
===================================================================
--- z3c.pt/trunk/src/z3c/pt/translation.py	2008-07-06 10:08:36 UTC (rev 88064)
+++ z3c.pt/trunk/src/z3c/pt/translation.py	2008-07-06 10:25:41 UTC (rev 88065)
@@ -71,8 +71,11 @@
                     '{http://xml.zope.org/namespaces/tal}interpolation')
                 t.attrib['replace'] = m.group('expression')
                 t.tail = self.text[m.end():]
-                self.insert(0, t)                
-                self.text = self.text[:m.start()+1]
+                self.insert(0, t)
+                if m.start() == 0:
+                    self.text = self.text[1:m.start()+1]
+                else:
+                    self.text = self.text[:m.start()+1]
 
         # interpolate tail
         if self.tail is not None:
@@ -86,8 +89,11 @@
                 t.attrib['replace'] = m.group('expression')
                 t.tail = self.tail[m.end():]
                 parent = self.getparent()
-                parent.insert(parent.index(self)+1, t)                
-                self.tail = self.tail[:m.start()+1]
+                parent.insert(parent.index(self)+1, t)
+                if m.start() > 0:
+                    self.tail = self.tail[:m.start()+1]
+                else:
+                    self.tail = self.tail[:m.start()]
 
         # interpolate attributes
         for name in self._static_attributes():



More information about the Checkins mailing list