diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/rfc822.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Lib/rfc822.py b/Lib/rfc822.py index e6e0696..9d76f6d 100644 --- a/Lib/rfc822.py +++ b/Lib/rfc822.py @@ -284,6 +284,28 @@ class Message: """Get a specific header, as from a dictionary.""" return self.dict[string.lower(name)] + def __delitem__(self, name): + """Delete all occurrences of a specific header, if it is present.""" + name = string.lower(name) + if not self.dict.has_key(name): + return + del self.dict[name] + name = name + ':' + n = len(name) + list = [] + hit = 0 + for i in range(len(self.headers)): + line = self.headers[i] + if string.lower(line[:n]) == name: + hit = 1 + elif line[:1] not in string.whitespace: + hit = 0 + if hit: + list.append(i) + list.reverse() + for i in list: + del self.headers[i] + def has_key(self, name): """Determine whether a message contains the named header.""" return self.dict.has_key(string.lower(name)) |