mirror of
https://github.com/lua/lua
synced 2026-09-27 00:28:25 +03:00
Tiny refactoring in io.flush
This commit is contained in:
parent
3f4f28010a
commit
620f49a7aa
2 changed files with 25 additions and 7 deletions
13
liolib.c
13
liolib.c
|
|
@ -732,18 +732,19 @@ static int f_setvbuf (lua_State *L) {
|
|||
}
|
||||
|
||||
|
||||
|
||||
static int io_flush (lua_State *L) {
|
||||
FILE *f = getiofile(L, IO_OUTPUT);
|
||||
static int aux_flush (lua_State *L, FILE *f) {
|
||||
errno = 0;
|
||||
return luaL_fileresult(L, fflush(f) == 0, NULL);
|
||||
}
|
||||
|
||||
|
||||
static int f_flush (lua_State *L) {
|
||||
FILE *f = tofile(L);
|
||||
errno = 0;
|
||||
return luaL_fileresult(L, fflush(f) == 0, NULL);
|
||||
return aux_flush(L, tofile(L));
|
||||
}
|
||||
|
||||
|
||||
static int io_flush (lua_State *L) {
|
||||
return aux_flush(L, getiofile(L, IO_OUTPUT));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@ collectgarbage()
|
|||
|
||||
assert(io.write(' ' .. t .. ' '))
|
||||
assert(io.write(';', 'end of file\n'))
|
||||
f:flush(); io.flush()
|
||||
assert(f:flush()); assert(io.flush())
|
||||
f:close()
|
||||
print('+')
|
||||
|
||||
|
|
@ -461,6 +461,23 @@ do -- testing closing file in line iteration
|
|||
end
|
||||
|
||||
|
||||
do print("testing flush")
|
||||
local f = io.output("/dev/null")
|
||||
assert(f:write("abcd")) -- write to buffer
|
||||
assert(f:flush()) -- write to device
|
||||
assert(f:write("abcd")) -- write to buffer
|
||||
assert(io.flush()) -- write to device
|
||||
assert(f:close())
|
||||
|
||||
local f = io.output("/dev/full")
|
||||
assert(f:write("abcd")) -- write to buffer
|
||||
assert(not f:flush()) -- cannot write to device
|
||||
assert(f:write("abcd")) -- write to buffer
|
||||
assert(not io.flush()) -- cannot write to device
|
||||
assert(f:close())
|
||||
end
|
||||
|
||||
|
||||
-- test for multipe arguments in 'lines'
|
||||
io.output(file); io.write"0123456789\n":close()
|
||||
for a,b in io.lines(file, 1, 1) do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue