diff --git a/src/core/org/luaj/vm2/lib/IoLib.java b/src/core/org/luaj/vm2/lib/IoLib.java index 04070776..9da029f9 100644 --- a/src/core/org/luaj/vm2/lib/IoLib.java +++ b/src/core/org/luaj/vm2/lib/IoLib.java @@ -469,7 +469,7 @@ public class IoLib extends OneArgFunction { private static Varargs iowrite(File f, Varargs args) throws IOException { for ( int i=1, n=args.narg(); i<=n; i++ ) f.write( args.checkstring(i) ); - return LuaValue.TRUE; + return f; } private Varargs ioread(File f, Varargs args) throws IOException { diff --git a/test/lua/iolib.lua b/test/lua/iolib.lua index ec87c0cb..4a4e8b70 100644 --- a/test/lua/iolib.lua +++ b/test/lua/iolib.lua @@ -5,6 +5,15 @@ print( 'platform', platform ) -- -- C version on Windows will add change \n into \r\n for text files at least -- +local tostr,files,nfiles = tostring,{},0 +tostring = function(x) + local s = tostr(x) + if s:sub(1,4) ~= 'file' then return s end + if files[s] then return files[s] end + files[s] = 'file.'..nfiles + nfiles = nfiles + 1 + return files[s] +end print( io ~= nil ) print( io.open ~= nil ) print( io.stdin ~= nil ) diff --git a/test/lua/luaj3.0-tests.zip b/test/lua/luaj3.0-tests.zip index 3975d417..62b42bc9 100644 Binary files a/test/lua/luaj3.0-tests.zip and b/test/lua/luaj3.0-tests.zip differ