Add next() and __iter__() methods to StreamReader, StreamReaderWriter
and StreamRecoder.

This closes SF bug #634246.
diff --git a/Lib/codecs.py b/Lib/codecs.py
index 40f0a2e..0b43a72 100644
--- a/Lib/codecs.py
+++ b/Lib/codecs.py
@@ -299,6 +299,17 @@
         """
         pass
 
+    def next(self):
+
+        """ Return the next decoded line from the input stream."""
+        line = self.readline()
+        if line:
+            return line
+        raise StopIteration
+
+    def __iter__(self):
+        return self
+
     def __getattr__(self, name,
                     getattr=getattr):
 
@@ -351,6 +362,14 @@
 
         return self.reader.readlines(sizehint)
 
+    def next(self):
+
+        """ Return the next decoded line from the input stream."""
+        return self.reader.next()
+
+    def __iter__(self):
+        return self
+
     def write(self, data):
 
         return self.writer.write(data)
@@ -451,6 +470,14 @@
         data, bytesencoded = self.encode(data, self.errors)
         return data.splitlines(1)
 
+    def next(self):
+
+        """ Return the next decoded line from the input stream."""
+        return self.reader.next()
+
+    def __iter__(self):
+        return self
+
     def write(self, data):
 
         data, bytesdecoded = self.decode(data, self.errors)