From 91b6b4f25e0fb8ccc9d96893f19499b62f73c78b Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 20 Nov 2021 15:01:40 +0100 Subject: mail/envelope:_EnvelopeHeaders: make del delete all the entries --- alot/mail/envelope.py | 19 +++++++++++++++---- 1 file 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 -- cgit v1.2.3