From decd597273c39311541bfd45ab71974f90dca9e6 Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Mon, 20 Jan 2014 18:38:27 +0200
Subject: [PATCH] unix io.FileIO: Add iteration support.

A file cannot be iterated concurrently, so we make io.FileIO its own
iterator.
---
 tests/io/file-iter.py | 3 +++
 unix/file.c           | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)
 create mode 100644 tests/io/file-iter.py

diff --git a/tests/io/file-iter.py b/tests/io/file-iter.py
new file mode 100644
index 000000000..48e873996
--- /dev/null
+++ b/tests/io/file-iter.py
@@ -0,0 +1,3 @@
+f = open("io/data/file1")
+for l in f:
+    print(l)
diff --git a/unix/file.c b/unix/file.c
index af7594471..bbe84dfb4 100644
--- a/unix/file.c
+++ b/unix/file.c
@@ -102,8 +102,8 @@ static const mp_obj_type_t rawfile_type = {
     "io.FileIO",
     .print = fdfile_print,
     .make_new = fdfile_make_new,
-    .getiter = NULL,
-    .iternext = NULL,
+    .getiter = mp_identity,
+    .iternext = mp_stream_unbuffered_iter,
     .stream_p = {
         .read = fdfile_read,
         .write = fdfile_write,
-- 
GitLab