Log message for revision 89807: - integrated Hotfix-2008-08-12 Changed: U Zope/branches/2.9/doc/CHANGES.txt _U Zope/branches/2.9/lib/python/ U Zope/branches/2.9/lib/python/Products/PythonScripts/__init__.py A Zope/branches/2.9/lib/python/Products/PythonScripts/patches.py
-=- Modified: Zope/branches/2.9/doc/CHANGES.txt =================================================================== --- Zope/branches/2.9/doc/CHANGES.txt 2008-08-13 18:01:45 UTC (rev 89806) +++ Zope/branches/2.9/doc/CHANGES.txt 2008-08-13 18:06:20 UTC (rev 89807) @@ -16,6 +16,8 @@ - Launchpad #234209: De-tabify ZPublisher/HTTPRequest.py + - integrated Hotfix-2008-08-12 + Zope 2.9.9 (2008/05/10) Bugs fixed Property changes on: Zope/branches/2.9/lib/python ___________________________________________________________________ Name: svn:externals - ZConfig svn://svn.zope.org/repos/main/ZConfig/tags/ZConfig-2.3.1 BTrees svn://svn.zope.org/repos/main/ZODB/tags/3.6.2/src/BTrees persistent svn://svn.zope.org/repos/main/ZODB/tags/3.6.2/src/persistent ThreadedAsync svn://svn.zope.org/repos/main/ZODB/tags/3.6.2/src/ThreadedAsync transaction svn://svn.zope.org/repos/main/ZODB/tags/3.6.2/src/transaction ZEO svn://svn.zope.org/repos/main/ZODB/tags/3.6.2/src/ZEO ZODB svn://svn.zope.org/repos/main/ZODB/tags/3.6.2/src/ZODB ZopeUndo svn://svn.zope.org/repos/main/ZODB/tags/3.6.2/src/ZopeUndo # Todo: tag zdaemon zdaemon -r 40792 svn://svn.zope.org/repos/main/zdaemon/trunk/src/zdaemon pytz svn://svn.zope.org/repos/main/Zope3/tags/3.2.2/src/pytz zodbcode svn://svn.zope.org/repos/main/Zope3/tags/3.2.2/src/zodbcode ClientCookie svn://svn.zope.org/repos/main/Zope3/tags/3.2.2/src/ClientCookie mechanize svn://svn.zope.org/repos/main/Zope3/tags/3.2.2/src/mechanize + ZConfig svn://svn.zope.org/repos/main/ZConfig/tags/ZConfig-2.3.1 BTrees svn://svn.zope.org/repos/main/ZODB/tags/3.6.3/src/BTrees persistent svn://svn.zope.org/repos/main/ZODB/tags/3.6.3/src/persistent ThreadedAsync svn://svn.zope.org/repos/main/ZODB/tags/3.6.3/src/ThreadedAsync transaction svn://svn.zope.org/repos/main/ZODB/tags/3.6.3/src/transaction ZEO svn://svn.zope.org/repos/main/ZODB/tags/3.6.3/src/ZEO ZODB svn://svn.zope.org/repos/main/ZODB/tags/3.6.3/src/ZODB ZopeUndo svn://svn.zope.org/repos/main/ZODB/tags/3.6.3/src/ZopeUndo # Todo: tag zdaemon zdaemon -r 40792 svn://svn.zope.org/repos/main/zdaemon/trunk/src/zdaemon pytz svn://svn.zope.org/repos/main/Zope3/tags/3.2.2/src/pytz zodbcode svn://svn.zope.org/repos/main/Zope3/tags/3.2.2/src/zodbcode ClientCookie svn://svn.zope.org/repos/main/Zope3/tags/3.2.2/src/ClientCookie mechanize svn://svn.zope.org/repos/main/Zope3/tags/3.2.2/src/mechanize Modified: Zope/branches/2.9/lib/python/Products/PythonScripts/__init__.py =================================================================== --- Zope/branches/2.9/lib/python/Products/PythonScripts/__init__.py 2008-08-13 18:01:45 UTC (rev 89806) +++ Zope/branches/2.9/lib/python/Products/PythonScripts/__init__.py 2008-08-13 18:06:20 UTC (rev 89807) @@ -61,3 +61,5 @@ if names: return 'The following Scripts were recompiled:\n' + '\n'.join(names) return 'No Scripts were found that required recompilation.' + +import patches Added: Zope/branches/2.9/lib/python/Products/PythonScripts/patches.py =================================================================== --- Zope/branches/2.9/lib/python/Products/PythonScripts/patches.py (rev 0) +++ Zope/branches/2.9/lib/python/Products/PythonScripts/patches.py 2008-08-13 18:06:20 UTC (rev 89807) @@ -0,0 +1,99 @@ + + +################################################################ +# Monkey patch for LP #257276 (Hotfix-2008-08-12) +# +# This code is taken from the encodings module of Python 2.4. +# Note that this code is originally (C) CNRI and it is possibly not compatible +# with the ZPL and therefore should not live within svn.zope.org. However this +# checkin is blessed by Jim Fulton for now. The fix is no longer required with +# Python 2.5 and hopefully fixed in Python 2.4.6 release. +################################################################ + +# Written by Marc-Andre Lemburg ([EMAIL PROTECTED]). +# (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. + +def search_function(encoding): + + # Cache lookup + entry = _cache.get(encoding, _unknown) + if entry is not _unknown: + return entry + + # Import the module: + # + # First try to find an alias for the normalized encoding + # name and lookup the module using the aliased name, then try to + # lookup the module using the standard import scheme, i.e. first + # try in the encodings package, then at top-level. + # + norm_encoding = normalize_encoding(encoding) + aliased_encoding = _aliases.get(norm_encoding) or \ + _aliases.get(norm_encoding.replace('.', '_')) + if aliased_encoding is not None: + modnames = [aliased_encoding, + norm_encoding] + else: + modnames = [norm_encoding] + for modname in modnames: + + if not modname or '.' in modname: + continue + + try: + mod = __import__(modname, + globals(), locals(), _import_tail) + if not mod.__name__.startswith('encodings.'): + continue + + except ImportError: + pass + else: + break + else: + mod = None + + try: + getregentry = mod.getregentry + except AttributeError: + # Not a codec module + mod = None + + if mod is None: + # Cache misses + _cache[encoding] = None + return None + + # Now ask the module for the registry entry + entry = tuple(getregentry()) + if len(entry) != 4: + raise CodecRegistryError,\ + 'module "%s" (%s) failed to register' % \ + (mod.__name__, mod.__file__) + for obj in entry: + if not callable(obj): + raise CodecRegistryError,\ + 'incompatible codecs in module "%s" (%s)' % \ + (mod.__name__, mod.__file__) + + # Cache the codec registry entry + _cache[encoding] = entry + + # Register its aliases (without overwriting previously registered + # aliases) + try: + codecaliases = mod.getaliases() + except AttributeError: + pass + else: + for alias in codecaliases: + if not _aliases.has_key(alias): + _aliases[alias] = modname + + # Return the registry entry + return entry + + +import encodings +encodings.search_function.func_code = search_function.func_code + _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins