diff options
Diffstat (limited to 'gem/ex5.lua')
-rw-r--r-- | gem/ex5.lua | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gem/ex5.lua b/gem/ex5.lua new file mode 100644 index 0000000..196b30a --- /dev/null +++ b/gem/ex5.lua | |||
@@ -0,0 +1,15 @@ | |||
1 | function source.empty(err) | ||
2 | return function() | ||
3 | return nil, err | ||
4 | end | ||
5 | end | ||
6 | |||
7 | function source.file(handle, io_err) | ||
8 | if handle then | ||
9 | return function() | ||
10 | local chunk = handle:read(20) | ||
11 | if not chunk then handle:close() end | ||
12 | return chunk | ||
13 | end | ||
14 | else return source.empty(io_err or "unable to open file") end | ||
15 | end | ||