Blob Blame Raw
From 451cbd3ce291b2e3205461068899bb55d7dcd9d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 17 Jul 2013 12:50:43 -0400
Subject: [PATCH] systemd-python: fix iteration

Back in 6a58bf4135 raising stop iteration was removed from the C
code, but wasn't added in the Python counterpart.
---
 configure.ac                  |  1 -
 src/python-systemd/journal.py | 24 ++++++++++++------------
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/configure.ac b/configure.ac
index e1278e8504..a9182520fa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -939,7 +939,6 @@ AC_MSG_RESULT([
         nss-myhostname:          ${have_myhostname}
         gudev:                   ${enable_gudev}
         gintrospection:          ${enable_introspection}
-        keymap:                  ${enable_keymap}
         Python:                  ${have_python}
         Python Headers:          ${have_python_devel}
         man pages:               ${have_manpages}
diff --git a/src/python-systemd/journal.py b/src/python-systemd/journal.py
index 8fd1bb357c..adcc844f46 100644
--- a/src/python-systemd/journal.py
+++ b/src/python-systemd/journal.py
@@ -191,18 +191,18 @@ class Reader(_Reader):
         """
         return self
 
-    if _sys.version_info >= (3,):
-        def __next__(self):
-            """Part of iterator protocol.
-            Returns self.get_next().
-            """
-            return self.get_next()
-    else:
-        def next(self):
-            """Part of iterator protocol.
-            Returns self.get_next().
-            """
-            return self.get_next()
+    def __next__(self):
+        """Part of iterator protocol.
+        Returns self.get_next() or raises StopIteration.
+        """
+        ans = self.get_next()
+        if ans:
+            return ans
+        else:
+            raise StopIteration()
+
+    if _sys.version_info < (3,):
+        next = __next__
 
     def add_match(self, *args, **kwargs):
         """Add one or more matches to the filter journal log entries.