diff options
author | Felix Fietkau <nbd@openwrt.org> | 2009-10-26 04:52:07 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2009-10-26 04:52:07 +0000 |
commit | 64d9a00a9934cd06401f4b9ec2e14950a4423a87 (patch) | |
tree | 99f8a9f96407f1420e36a37f02a000346dc6ca81 /libs/nixio/src/fs.c | |
parent | 2181825db596a12d23f56fa8fbfebd94f99b13c4 (diff) |
nixio: store stats and other number information as integer, which works better when lua number support is downgraded from double to float
Diffstat (limited to 'libs/nixio/src/fs.c')
-rw-r--r-- | libs/nixio/src/fs.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/libs/nixio/src/fs.c b/libs/nixio/src/fs.c index 6ebfbaa421..e21623b858 100644 --- a/libs/nixio/src/fs.c +++ b/libs/nixio/src/fs.c @@ -83,7 +83,7 @@ int nixio__check_mode(lua_State *L, int idx, int def) { if (i == 9) { /* successfully parsed */ return mode; } - } else if (lua_isnumber(L, idx)) { + } else if (lua_isinteger(L, idx)) { int decmode = lua_tointeger(L, idx); int s = (decmode % 10000) / 1000; int u = (decmode % 1000) / 100; @@ -257,14 +257,14 @@ static int nixio_utimes(lua_State *L) { if (lua_gettop(L) < 2 || (lua_isnoneornil(L, 2) && lua_isnoneornil(L, 3))) { return nixio__pstatus(L, !utimes(path, NULL)); } else { - double atime = luaL_checknumber(L, 2); - double mtime = luaL_optnumber(L, 3, atime); + double atime = luaL_checkinteger(L, 2); + double mtime = luaL_optinteger(L, 3, atime); struct timeval times[2]; times[0].tv_sec = atime; - times[0].tv_usec = (long)((atime - (int64_t)atime) * 1000000); + times[0].tv_usec = 0; times[1].tv_sec = mtime; - times[1].tv_usec = (long)((mtime - (int64_t)mtime) * 1000000); + times[1].tv_usec = 0; return nixio__pstatus(L, !utimes(path, times)); } @@ -317,7 +317,7 @@ int nixio__push_stat(lua_State *L, nixio_stat_t *buf) { lua_pushinteger(L, buf->st_rdev); lua_setfield(L, -2, "rdev"); - lua_pushnumber(L, buf->st_size); + lua_pushinteger(L, buf->st_size); lua_setfield(L, -2, "size"); lua_pushinteger(L, buf->st_atime); @@ -469,37 +469,37 @@ static int nixio_glob(lua_State *L) { static int nixio__push_statvfs(lua_State *L, struct statvfs *buf) { lua_createtable(L, 0, 12); - lua_pushnumber(L, buf->f_bavail); + lua_pushinteger(L, buf->f_bavail); lua_setfield(L, -2, "bavail"); - lua_pushnumber(L, buf->f_bfree); + lua_pushinteger(L, buf->f_bfree); lua_setfield(L, -2, "bfree"); - lua_pushnumber(L, buf->f_blocks); + lua_pushinteger(L, buf->f_blocks); lua_setfield(L, -2, "blocks"); - lua_pushnumber(L, buf->f_bsize); + lua_pushinteger(L, buf->f_bsize); lua_setfield(L, -2, "bsize"); - lua_pushnumber(L, buf->f_frsize); + lua_pushinteger(L, buf->f_frsize); lua_setfield(L, -2, "frsize"); - lua_pushnumber(L, buf->f_favail); + lua_pushinteger(L, buf->f_favail); lua_setfield(L, -2, "favail"); - lua_pushnumber(L, buf->f_ffree); + lua_pushinteger(L, buf->f_ffree); lua_setfield(L, -2, "ffree"); - lua_pushnumber(L, buf->f_files); + lua_pushinteger(L, buf->f_files); lua_setfield(L, -2, "files"); - lua_pushnumber(L, buf->f_flag); + lua_pushinteger(L, buf->f_flag); lua_setfield(L, -2, "flag"); - lua_pushnumber(L, buf->f_fsid); + lua_pushinteger(L, buf->f_fsid); lua_setfield(L, -2, "fsid"); - lua_pushnumber(L, buf->f_namemax); + lua_pushinteger(L, buf->f_namemax); lua_setfield(L, -2, "namemax"); return 1; |