Merge branch 'master' into 1.7

This commit is contained in:
Peter Melnichenko
2016-06-21 10:48:11 +03:00
3 changed files with 17 additions and 12 deletions

View File

@@ -875,7 +875,7 @@ static const struct luaL_Reg fslib[] = {
{NULL, NULL},
};
int luaopen_lfs (lua_State *L) {
LFS_EXPORT int luaopen_lfs (lua_State *L) {
dir_create_meta (L);
lock_create_meta (L);
luaL_newlib (L, fslib);

View File

@@ -5,27 +5,29 @@
/* Define 'chdir' for systems that do not implement it */
#ifdef NO_CHDIR
#define chdir(p) (-1)
#define chdir_error "Function 'chdir' not provided by system"
#define chdir(p) (-1)
#define chdir_error "Function 'chdir' not provided by system"
#else
#define chdir_error strerror(errno)
#define chdir_error strerror(errno)
#endif
#ifdef _WIN32
#define chdir(p) (_chdir(p))
#define getcwd(d, s) (_getcwd(d, s))
#define rmdir(p) (_rmdir(p))
#ifndef fileno
#define fileno(f) (_fileno(f))
#endif
#define chdir(p) (_chdir(p))
#define getcwd(d, s) (_getcwd(d, s))
#define rmdir(p) (_rmdir(p))
#define LFS_EXPORT __declspec (dllexport)
#ifndef fileno
#define fileno(f) (_fileno(f))
#endif
#else
#define LFS_EXPORT
#endif
#ifdef __cplusplus
extern "C" {
#endif
int luaopen_lfs (lua_State *L);
LFS_EXPORT int luaopen_lfs (lua_State *L);
#ifdef __cplusplus
}

View File

@@ -107,6 +107,9 @@ assert(result) -- on non-Windows platforms, mode is always returned as "binary"
result, mode = lfs.setmode(f, "text")
assert(result and mode == "binary")
f:close()
local ok, err = pcall(lfs.setmode, f, "binary")
assert(not ok, "could setmode on closed file")
assert(err:find("closed file"), "bad error message for setmode on closed file")
io.write(".")
io.flush()