[Zope-Checkins] CVS: Zope/lib/python/ZPublisher - cgi_hotfix.py: Converters.py: HTTPRequest.py: HTTPResponse.py:

Shane Hathaway shane@digicool.com
Thu, 9 Aug 2001 13:34:15 -0400

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

Modified Files:
      Tag: NR-branch
	Converters.py HTTPRequest.py HTTPResponse.py 
Added Files:
      Tag: NR-branch
Log Message:
Sync NR-branch with trunk.  Sorry about so many checkin messages...

=== Added File Zope/lib/python/ZPublisher/cgi_hotfix.py ===
def set_read_multi():
    import re
    global valid_boundary
    valid_boundary = re.compile("^[ -~]{0,200}[!-~]$").match

    def read_multi(self, environ, keep_blank_values, strict_parsing):
        """Internal: read a part that is itself multipart."""
        ib = self.innerboundary
        if not valid_boundary(ib):
            raise ValueError, ('Invalid boundary in multipart form: %s' 
                               % `ib`)
        self.list = []
        klass = self.FieldStorageClass or self.__class__
        part = klass(self.fp, {}, ib,
                     environ, keep_blank_values, strict_parsing)
        # Throw first part away
        while not part.done:
            headers = rfc822.Message(self.fp)
            part = klass(self.fp, headers, ib,
                         environ, keep_blank_values, strict_parsing)
    FieldStorage.read_multi = read_multi

import cgi
exec set_read_multi.func_code in cgi.__dict__

=== Zope/lib/python/ZPublisher/Converters.py 1.11 => ===
     return v
-def field2text(v, nl=re.compile('\r\n\|\n\r').search):
+def field2text(v, nl=re.compile('\r\n|\n\r').search):
     if hasattr(v,'read'): v=v.read()
     else: v=str(v)
     mo = nl(v)

=== Zope/lib/python/ZPublisher/HTTPRequest.py 1.54 => ===
-import  re, sys, os, string, urllib, time, whrandom
+import re, sys, os, string, urllib, time, whrandom, cgi
 from string import lower, atoi, rfind, split, strip, join, upper, find
 from BaseRequest import BaseRequest
 from HTTPResponse import HTTPResponse
@@ -94,6 +94,10 @@
 from Converters import get_converter
 from maybe_lock import allocate_lock
 xmlrpc=None # Placeholder for module that we'll import if we have to.
+#cgi hotfix:
+if not hasattr(cgi, 'valid_boundary'):
+    import cgi_hotfix
 isCGI_NAME = {
         'SERVER_SOFTWARE' : 1, 

=== Zope/lib/python/ZPublisher/HTTPResponse.py 1.46 => ===
         # XXX could this try to use standard_error_message somehow?
         return ("""\
 <TABLE BORDER="0" WIDTH="100%">
@@ -535,18 +531,15 @@
   Thank you for your patience.
-    def notFoundError(self,entry='who knows!'):
+    def notFoundError(self,entry='Unknown'):
         raise 'NotFound',self._error_html(
             "Resource not found",
-            "Sorry, the requested resource does not exist.<p>" +
-            "Check the URL and try again.<p>" +
-            "\n<!--\n%s\n-->" % entry)
+            "Sorry, the requested resource does not exist." +
+            "<p>Check the URL and try again.</p>" +
+            "<p><b>Resource:</b> %s</p>" % self.quoteHTML(entry))
     forbiddenError=notFoundError  # If a resource is forbidden,
                                   # why reveal that it exists?