Support for augmented assignment in the UserList, UserDict, UserString and
rfc822 (Addresslist) modules. Also a preliminary testcase for augmented
assignment, which should actually be merged with the test_class testcase I
added last week.
diff --git a/Lib/rfc822.py b/Lib/rfc822.py
index 6473149..42aac1c 100644
--- a/Lib/rfc822.py
+++ b/Lib/rfc822.py
@@ -763,6 +763,13 @@
                 newaddr.addresslist.append(x)
         return newaddr
 
+    def __iadd__(self, other):
+        # Set union, in-place
+        for x in other.addresslist:
+            if not x in self.addresslist:
+                self.addresslist.append(x)
+        return self
+
     def __sub__(self, other):
         # Set difference
         newaddr = AddressList(None)
@@ -771,6 +778,13 @@
                 newaddr.addresslist.append(x)
         return newaddr
 
+    def __isub__(self, other):
+        # Set difference, in-place
+        for x in other.addresslist:
+            if x in self.addresslist:
+                self.addresslist.remove(x)
+        return self
+
     def __getitem__(self, index):
         # Make indexing, slices, and 'in' work
         return self.addresslist[index]