diff options
| -rw-r--r-- | README.md | 4 | ||||
| -rw-r--r-- | src/liolib.js | 19 | 
2 files changed, 21 insertions, 2 deletions
@@ -38,10 +38,10 @@          - [x] `io.type()`          - [x] `io.write()`          - [x] `io.flush()` -        - [ ] `io.input()` +        - [ ] `io.input()`: partially implemented          - [ ] `io.lines()`          - [ ] `io.open()` -        - [ ] `io.output()` +        - [ ] `io.output()`: partially implemented          - [ ] `io.popen()`          - [ ] `io.read()`          - [ ] `io.tmpfile()` diff --git a/src/liolib.js b/src/liolib.js index 6c7d945..51e18ee 100644 --- a/src/liolib.js +++ b/src/liolib.js @@ -78,6 +78,23 @@ const getiofile = function(L, findex) {      return p.f;  }; +const g_iofile = function(L, f, mode) { +    if (!lua.lua_isnoneornil(L, 1)) { +        lauxlib.luaL_error(L, lua.to_luastring("opening files not yet implemented")); +    } +    /* return current value */ +    lua.lua_getfield(L, lua.LUA_REGISTRYINDEX, f); +    return 1; +}; + +const io_input = function(L) { +  return g_iofile(L, IO_INPUT, "r"); +}; + +const io_output = function(L) { +  return g_iofile(L, IO_OUTPUT, "w"); +}; +  const g_write = function(L, f, arg) {      let nargs = lua.lua_gettop(L) - arg;      let status = true; @@ -120,6 +137,8 @@ const f_flush = function (L) {  const iolib = {      "close": io_close,      "flush": io_flush, +    "input": io_input, +    "output": io_output,      "type": io_type,      "write": io_write  };  | 
