[ZPT] CVS: Zope/lib/python/TAL - TALInterpreter.py:1.61

Jeremy Hylton jeremy@zope.com
Mon, 22 Oct 2001 21:30:30 -0400


Update of /cvs-repository/Zope/lib/python/TAL
In directory cvs.zope.org:/tmp/cvs-serv8273

Modified Files:
	TALInterpreter.py 
Log Message:
Revert previous checkin.  TAL must work with Python 1.5.2.

XXX Future issue to resolve: How to shut up deprecation warnings in
the test suite when running with Python 2.2.  The Zope trunk isn't
required to work w/ 2.2 yet, so it's a non-issue at the moment.


=== Zope/lib/python/TAL/TALInterpreter.py 1.60 => 1.61 ===
 
 from cgi import escape
+from string import join, lower, rfind
+try:
+    from strop import lower, rfind
+except ImportError:
+    pass
 
 try:
     from cStringIO import StringIO
@@ -230,9 +235,9 @@
             self.col = 0
 
     def stream_write(self, s,
-                     len=len):
+                     len=len, rfind=rfind):
         self._stream_write(s)
-        i = s.rfind('\n')
+        i = rfind(s, '\n')
         if i < 0:
             self.col = self.col + len(s)
         else:
@@ -333,7 +338,7 @@
             # Clear 'entering' flag
             macs[-1][2] = 0
             # Convert or drop depth-one METAL attributes.
-            i = name.rfind(":") + 1
+            i = rfind(name, ":") + 1
             prefix, suffix = name[:i], name[i:]
             if suffix == "define-macro":
                 # Convert define-macro as we enter depth one.
@@ -357,7 +362,7 @@
         if action > 1:
             return self.attrAction(item)
         ok = 1
-        if self.html and name.lower() in BOOLEAN_HTML_ATTRS:
+        if self.html and lower(name) in BOOLEAN_HTML_ATTRS:
             evalue = self.engine.evaluateBoolean(item[3])
             if evalue is self.Default:
                 if action == 1: # Cancelled insert
@@ -486,7 +491,7 @@
             return
         s = escape(text)
         self._stream_write(s)
-        i = s.rfind('\n')
+        i = rfind(s, '\n')
         if i < 0:
             self.col = self.col + len(s)
         else: