diff --git a/source/texk/web2c/luatexdir/lua/liolibext.c b/source/texk/web2c/luatexdir/lua/liolibext.c index 2aedf86aa2952d05d8cbb0012e37925f4bcc52cf..acf70f7b254eaa4b7cafaf9ea9dcf54fdf499bf4 100644 --- a/source/texk/web2c/luatexdir/lua/liolibext.c +++ b/source/texk/web2c/luatexdir/lua/liolibext.c @@ -181,8 +181,14 @@ static LStream *newfile (lua_State *L) { static void opencheck (lua_State *L, const char *fname, const char *mode) { LStream *p = newfile(L); p->f = fopen(fname, mode); - if (p->f == NULL) + if (p->f == NULL) { luaL_error(L, "cannot open file " LUA_QS " (%s)", fname, strerror(errno)); + } else { + if (mode[0]=='r') + recorder_record_input(fname); + else + recorder_record_output(fname); + } } @@ -199,7 +205,15 @@ static int io_open (lua_State *L) { return luaL_error(L, "invalid mode " LUA_QS " (should match " LUA_QL("[rwa]%%+?b?") ")", mode); p->f = fopen(filename, mode); - return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; + if (p->f == NULL) { + return luaL_fileresult(L, 0, filename) ; + } else { + if (mode[0]=='r') + recorder_record_input(filename); + else + recorder_record_output(filename); + return 1; + } } /* diff --git a/source/texk/web2c/luatexdir/lua/luastuff.w b/source/texk/web2c/luatexdir/lua/luastuff.w index 79622e14d15a1ba731c9d16bfec34967780ef3c3..48b03a2b8b9bc81d2c26f4c6e77ca5a67f07a624 100644 --- a/source/texk/web2c/luatexdir/lua/luastuff.w +++ b/source/texk/web2c/luatexdir/lua/luastuff.w @@ -147,9 +147,12 @@ static int luatex_loadfile (lua_State *L) { return 2; /* return nil plus error message */ } status = luaL_loadfilex(L, fname, mode); - if (status == LUA_OK && env) { /* 'env' parameter? */ - lua_pushvalue(L, 3); - lua_setupvalue(L, -2, 1); /* set it as 1st upvalue of loaded chunk */ + if (status == LUA_OK) { + recorder_record_input(fname); + if (env) { /* 'env' parameter? */ + lua_pushvalue(L, 3); + lua_setupvalue(L, -2, 1); /* set it as 1st upvalue of loaded chunk */ + } } return load_aux(L, status); } @@ -168,6 +171,7 @@ static int luatex_dofile (lua_State *L) { } } if (luaL_loadfile(L, fname) != 0) lua_error(L); + recorder_record_input(fname); lua_call(L, 0, LUA_MULTRET); return lua_gettop(L) - n; }