On Thu, 9 Aug 2001, Chris McDonough wrote:
Thanks very much for tracking this down! Do you think you can put it in the Collector?
It is covered by bugs 2410 and 2495. The patch is relatively small so here it comes: --- Zope-2.4.0/lib/python/Shared/DC/ZRDB/Aqueduct.py.orig Thu Aug 9 15:55:39 2001 +++ Zope-2.4.0/lib/python/Shared/DC/ZRDB/Aqueduct.py Thu Aug 9 15:57:26 2001 @@ -341,22 +341,24 @@ def __len__(self): return len(self._data) +unparmre=re.compile( + r'([\000- ]*([^\000- ="]+))') +parmre=re.compile( + r'([\000- ]*([^\000- ="]+)=([^\000- ="]+))') +qparmre=re.compile( + r'([\000- ]*([^\000- ="]+)="([^"]*)")') + def parse(text, result=None, keys=None, - unparmre=re.compile( - r'([\000- ]*([^\000- ="]+))'), - parmre=re.compile( - r'([\000- ]*([^\000- ="]+)=([^\000- ="]+))'), - qparmre=re.compile( - r'([\000- ]*([^\000- ="]+)="([^"]*)")'), ): - if result is None: result = {} keys = [] + if not text or not text.strip(): return Args(result,keys) + __traceback_info__=text mo = parmre.match(text) @@ -382,13 +384,16 @@ value = {} l = len(mo.group(1)) else: - if not text or not text.strip(): return Args(result,keys) raise InvalidParameter, text lt=name.find(':') if lt > 0: - value['type']=name[lt+1:] + t=value['type']=name[lt+1:] name=name[:lt] + lt=t.find(':') + if lt > 0: + value['type']=t[:lt] + value[t[lt+1:]]=1 result[name]=value keys.append(name) -- Andy Dustman PGP: 0xC72F3F1D @ .net http://dustman.net/andy I'll give spammers one bite of the apple, but they'll have to guess which bite has the razor blade in it.