[Erp5-report] r42002 kazuhiko - /erp5/trunk/products/PortalTransforms/transforms/safe_html.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Jan 4 17:16:19 CET 2011


Author: kazuhiko
Date: Tue Jan  4 17:16:19 2011
New Revision: 42002

URL: http://svn.erp5.org?rev=42002&view=rev
Log:
use Python-2.6's HTMLParser's entitydefs initialisation logic that uses unicode instead of str.

Modified:
    erp5/trunk/products/PortalTransforms/transforms/safe_html.py

Modified: erp5/trunk/products/PortalTransforms/transforms/safe_html.py
URL: http://svn.erp5.org/erp5/trunk/products/PortalTransforms/transforms/safe_html.py?rev=42002&r1=42001&r2=42002&view=diff
==============================================================================
--- erp5/trunk/products/PortalTransforms/transforms/safe_html.py [utf8] (original)
+++ erp5/trunk/products/PortalTransforms/transforms/safe_html.py [utf8] Tue Jan  4 17:16:19 2011
@@ -147,8 +147,6 @@ class StrippingParser(HTMLParser):
     Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
     """
 
-    from htmlentitydefs import entitydefs # replace entitydefs from sgmllib
-
     def __init__(self, valid, nasty, remove_javascript, raise_error,
                  default_encoding):
         HTMLParser.__init__( self )
@@ -180,6 +178,15 @@ class StrippingParser(HTMLParser):
 
     def handle_entityref(self, name):
         if self.suppress: return
+        # (begin) copied from Python-2.6's HTMLParser.py
+        # Cannot use name2codepoint directly, because HTMLParser supports apos,
+        # which is not part of HTML 4
+        if self.entitydefs is None:
+            import htmlentitydefs
+            entitydefs = HTMLParser.entitydefs = {'apos':u"'"}
+            for k, v in htmlentitydefs.name2codepoint.iteritems():
+                entitydefs[k] = unichr(v)
+        # (end) copied from Python-2.6's HTMLParser.py
         if self.entitydefs.has_key(name):
             x = ';'
         else:



More information about the Erp5-report mailing list