python: Do explicitly check if the next tag exists

If we try to pull a non-existing tag, Tags._get will return None and the
appended .decode() command will fail. So make sure that there is a tag to
be fetched before fetching it.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
This commit is contained in:
Sebastian Spaeth 2011-08-09 17:45:44 +02:00
parent e75fd0d937
commit 94c5edd064

View file

@ -83,12 +83,10 @@ class Tags(object):
def next(self): def next(self):
if self._tags is None: if self._tags is None:
raise NotmuchError(STATUS.NOT_INITIALIZED) raise NotmuchError(STATUS.NOT_INITIALIZED)
# No need to call nmlib.notmuch_tags_valid(self._tags); if not nmlib.notmuch_tags_valid(self._tags):
# Tags._get safely returns None, if there is no more valid tag.
tag = Tags._get(self._tags).decode('utf-8')
if tag is None:
self._tags = None self._tags = None
raise StopIteration raise StopIteration
tag = Tags._get(self._tags).decode('utf-8')
nmlib.notmuch_tags_move_to_next(self._tags) nmlib.notmuch_tags_move_to_next(self._tags)
return tag return tag