[Python-checkins] CVS: python/dist/src/Lib rfc822.py,1.65,1.66

Guido van Rossum gvanrossum@users.sourceforge.net
Thu, 20 Dec 2001 07:54:50 -0800


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv31562

Modified Files:
	rfc822.py 
Log Message:
SF patch #495358 (Artur Zaprzala): rfc822.AddressList and "<>" address

    rfc822.AddressList incorrectly handles empty address. 
    "<>" is converted to None and should be "". 
    AddressList.__str__() fails on None. 
    I got an email with such an address and my program 
    failed processing it. 

    Example: 
    >>> import rfc822 

    >>> rfc822.AddressList("<>").addresslist 
    [('', None)] 
    >>> str(rfc822.AddressList("<>")) 
    Traceback (most recent call last): 
    File "<stdin>", line 1, in ? 
    File "/usr/lib/python2.1/rfc822.py", line 753, in __str__ 
    return ", ".join(map(dump_address_pair, 
    self.addresslist)) 
    TypeError: sequence item 0: expected string, None found 

[His solution: in the internal routine AddrlistClass.getrouteaddr(),
initialize adlist to "".]


Index: rfc822.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/rfc822.py,v
retrieving revision 1.65
retrieving revision 1.66
diff -C2 -d -r1.65 -r1.66
*** rfc822.py	2001/11/13 21:30:37	1.65
--- rfc822.py	2001/12/20 15:54:48	1.66
***************
*** 625,629 ****
          self.pos = self.pos + 1
          self.gotonext()
!         adlist = None
          while self.pos < len(self.field):
              if expectroute:
--- 625,629 ----
          self.pos = self.pos + 1
          self.gotonext()
!         adlist = ""
          while self.pos < len(self.field):
              if expectroute: