--- WorldPilot.orig/WPUtil.py Mon Jan 31 14:52:54 2000 +++ WorldPilot.mine/WPUtil.py Fri Jun 9 16:04:41 2000 @@ -90,6 +90,7 @@ import re import time import string +import regsub try: import DateTime except: pass @@ -101,7 +102,7 @@ r'.*"') LiteralString = re.compile(r'\s*\{(?P\d+)\}(?P.*)') -QuotedString = re.compile(r'\s*"(?P[^"]*)"(?P.*)') +QuotedString = re.compile(r'\s*"(?P.*?[^\\](?="))"(?P.*)') ListOpen = re.compile(r'\s*\((?P.*)') ListClose = re.compile(r'\s*\)(?P.*)') Atom = re.compile(r'\s*(?P\\?[\w\[\]\.]+)(?P.*)') @@ -173,10 +174,14 @@ conts=conts[1:] while line!="": m=QuotedString.match(line) - if m: - c.append(m.group('String')) - line=m.group('Rest') - continue + if m: + # BS: IMAP returns quotes backslashed, so we must + # remove the backslash here. + cur_string = m.group('String') + cur_string = regsub.gsub(r'\\"', '"', cur_string) + c.append(cur_string) + line=m.group('Rest') + continue m=ListOpen.match(line) if m: n=[]