diff options
author | Anton Khirnov <anton@khirnov.net> | 2021-11-20 15:01:40 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2021-11-20 15:01:40 +0100 |
commit | 91b6b4f25e0fb8ccc9d96893f19499b62f73c78b (patch) | |
tree | 37072f9c9bee976cb84b727b954097662bb7665c | |
parent | 2b6c9088c78d1aa944eeb969f678d644b8ef1180 (diff) |
mail/envelope:_EnvelopeHeaders: make del delete all the entries
-rw-r--r-- | alot/mail/envelope.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/alot/mail/envelope.py b/alot/mail/envelope.py index 655b5fe6..7f07eba4 100644 --- a/alot/mail/envelope.py +++ b/alot/mail/envelope.py @@ -59,10 +59,21 @@ class _EnvelopeHeaders: return self._vals[idx][0] def __delitem__(self, key): - idx = self._key_to_idx(key) - del self._keys_lower[idx] - del self._keys[idx] - del self._vals[idx] + deleted = False + + while True: + try: + idx = self._key_to_idx(key) + except KeyError: + if deleted: + return + raise + + del self._keys_lower[idx] + del self._keys[idx] + del self._vals[idx] + + deleted = True def __contains__(self, key): return key.lower() in self._keys_lower |