diff -Nur python2.3/cgi.py python2.3m/cgi.py --- python2.3/cgi.py 2004-10-27 15:34:45.969006744 +0400 +++ python2.3m/cgi.py 2004-10-27 15:39:27.512205672 +0400 @@ -315,6 +315,19 @@ return partdict +def _parseparam(s): + plist = [] + while s[:1] == ';': + s = s[1:] + end = s.find(';') + while end > 0 and s.count('"', 0, end) % 2: + end = s.find(';', end + 1) + if end < 0: + end = len(s) + f = s[:end] + plist.append(f.strip()) + s = s[end:] + return plist def parse_header(line): """Parse a Content-type like header. @@ -322,7 +335,7 @@ Return the main content-type and a dictionary of options. """ - plist = map(lambda x: x.strip(), line.split(';')) + plist = _parseparam(';' + line) key = plist.pop(0).lower() pdict = {} for p in plist: