mirror of https://github.com/lua/lua
error when calling close method without arguments (e.g.,
|io.stdin.close()|)
This commit is contained in:
parent
e354c6355e
commit
d266d40dea
13
liolib.c
13
liolib.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: liolib.c,v 2.150 2016/09/01 16:14:56 roberto Exp roberto $
|
||||
** $Id: liolib.c,v 2.151 2016/12/20 18:37:00 roberto Exp roberto $
|
||||
** Standard I/O (and system) library
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -206,11 +206,16 @@ static int aux_close (lua_State *L) {
|
|||
}
|
||||
|
||||
|
||||
static int f_close (lua_State *L) {
|
||||
tofile(L); /* make sure argument is an open stream */
|
||||
return aux_close(L);
|
||||
}
|
||||
|
||||
|
||||
static int io_close (lua_State *L) {
|
||||
if (lua_isnone(L, 1)) /* no argument? */
|
||||
lua_getfield(L, LUA_REGISTRYINDEX, IO_OUTPUT); /* use standard output */
|
||||
tofile(L); /* make sure argument is an open stream */
|
||||
return aux_close(L);
|
||||
return f_close(L);
|
||||
}
|
||||
|
||||
|
||||
|
@ -712,7 +717,7 @@ static const luaL_Reg iolib[] = {
|
|||
** methods for file handles
|
||||
*/
|
||||
static const luaL_Reg flib[] = {
|
||||
{"close", io_close},
|
||||
{"close", f_close},
|
||||
{"flush", f_flush},
|
||||
{"lines", f_lines},
|
||||
{"read", f_read},
|
||||
|
|
Loading…
Reference in New Issue