[Checkins] SVN: zope.documenttemplate/trunk/ Simpler, faster implementation of dt_var.newline_to_br(), with tests.

Paul Winkler slinkp at gmail.com
Tue Nov 18 15:28:19 EST 2008


Log message for revision 93100:
  Simpler, faster implementation of dt_var.newline_to_br(), with tests.

Changed:
  U   zope.documenttemplate/trunk/CHANGES.txt
  U   zope.documenttemplate/trunk/src/zope/documenttemplate/dt_var.py
  U   zope.documenttemplate/trunk/src/zope/documenttemplate/tests/testdt_var.py

-=-
Modified: zope.documenttemplate/trunk/CHANGES.txt
===================================================================
--- zope.documenttemplate/trunk/CHANGES.txt	2008-11-18 20:27:52 UTC (rev 93099)
+++ zope.documenttemplate/trunk/CHANGES.txt	2008-11-18 20:28:18 UTC (rev 93100)
@@ -5,8 +5,10 @@
 3.4.3 (Unreleased)
 ------------------
 
-- ...
+- Simpler, faster implementation of dt_var.newline_to_br().
+  (It still uses HTML 4 style <br> tags rather than XHTML style.)
 
+
 3.4.2 (2008/10/10)
 ------------------
 

Modified: zope.documenttemplate/trunk/src/zope/documenttemplate/dt_var.py
===================================================================
--- zope.documenttemplate/trunk/src/zope/documenttemplate/dt_var.py	2008-11-18 20:27:52 UTC (rev 93099)
+++ zope.documenttemplate/trunk/src/zope/documenttemplate/dt_var.py	2008-11-18 20:28:18 UTC (rev 93100)
@@ -306,10 +306,8 @@
 
 def newline_to_br(v, name='(Unknown name)', md={}):
     v = str(v)
-    if v.find('\r') >= 0:
-        v = ''.join(v.split('\r'))
-    if v.find('\n') >= 0:
-        v = '<br>\n'.join(v.split('\n'))
+    v = v.replace('\r', '')
+    v = v.replace('\n', '<br>\n')
     return v
 
 

Modified: zope.documenttemplate/trunk/src/zope/documenttemplate/tests/testdt_var.py
===================================================================
--- zope.documenttemplate/trunk/src/zope/documenttemplate/tests/testdt_var.py	2008-11-18 20:27:52 UTC (rev 93099)
+++ zope.documenttemplate/trunk/src/zope/documenttemplate/tests/testdt_var.py	2008-11-18 20:28:18 UTC (rev 93100)
@@ -149,6 +149,17 @@
                               korean=u'\uc548\ub155, \uc138\uc0c1!'),
                          expected)
 
+
+    def testNewlineToBr(self):
+        from zope.documenttemplate import dt_var
+        text = '\none\ntwo\n\nthree\n\n'
+        expected = '<br>\none<br>\ntwo<br>\n<br>\nthree<br>\n<br>\n'
+        self.assertEqual(dt_var.newline_to_br(text), expected)
+
+        dos = text.replace('\n', '\r\n')
+        self.assertEqual(dt_var.newline_to_br(dos), expected)
+
+
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTest(unittest.makeSuite(TestDT_Var))



More information about the Checkins mailing list