diff options
Diffstat (limited to 'alot/mail/envelope.py')
-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 |