mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-23 03:18:08 +01:00
Fix iterator classes to not skip the first element when iterating
--HG-- extra : transplant_source : %19wvB%19A%0A%CD%E7%28-%F0%12j%7FG%0DD%16%F4
This commit is contained in:
parent
bb5870b9af
commit
e026813bcb
1 changed files with 11 additions and 6 deletions
|
@ -239,16 +239,19 @@ class Tags(object):
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
""" Make Tags an iterator """
|
""" Make Tags an iterator """
|
||||||
if self._tags is None:
|
|
||||||
raise NotmuchError(STATUS.NOT_INITIALIZED)
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def next(self):
|
def next(self):
|
||||||
nmlib.notmuch_tags_move_to_next(self._tags)
|
if self._tags is None:
|
||||||
|
raise NotmuchError(STATUS.NOT_INITIALIZED)
|
||||||
|
|
||||||
if not nmlib.notmuch_tags_valid(self._tags):
|
if not nmlib.notmuch_tags_valid(self._tags):
|
||||||
self._tags = None
|
self._tags = None
|
||||||
raise StopIteration
|
raise StopIteration
|
||||||
return Tags._get (self._tags)
|
|
||||||
|
tag = Tags._get (self._tags)
|
||||||
|
nmlib.notmuch_tags_move_to_next(self._tags)
|
||||||
|
return tag
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
"""Close and free the notmuch tags"""
|
"""Close and free the notmuch tags"""
|
||||||
|
@ -296,11 +299,13 @@ class Messages(object):
|
||||||
if self._msgs is None:
|
if self._msgs is None:
|
||||||
raise NotmuchError(STATUS.NOT_INITIALIZED)
|
raise NotmuchError(STATUS.NOT_INITIALIZED)
|
||||||
|
|
||||||
nmlib.notmuch_messages_move_to_next(self._msgs)
|
|
||||||
if not nmlib.notmuch_messages_valid(self._msgs):
|
if not nmlib.notmuch_messages_valid(self._msgs):
|
||||||
self._msgs = None
|
self._msgs = None
|
||||||
raise StopIteration
|
raise StopIteration
|
||||||
return Message(Messages._get (self._msgs), self)
|
|
||||||
|
msg = Message(Messages._get (self._msgs), self)
|
||||||
|
nmlib.notmuch_messages_move_to_next(self._msgs)
|
||||||
|
return msg
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
"""Close and free the notmuch Messages"""
|
"""Close and free the notmuch Messages"""
|
||||||
|
|
Loading…
Reference in a new issue