}
lua_pushstring(L, addr.host);
- lua_pushnumber(L, addr.port);
+ lua_pushinteger(L, addr.port);
return 2;
}
}
lua_pushstring(L, addr.host);
- lua_pushnumber(L, addr.port);
+ lua_pushinteger(L, addr.port);
return 2;
}
static int nixio_bin_crc32(lua_State *L) {
size_t len;
const char *buffer = luaL_checklstring(L, 1, &len);
- uint32_t value = luaL_optnumber(L, 2, 0);
+ uint32_t value = luaL_optinteger(L, 2, 0);
value = ~value;
for (size_t i=0; i<len; i++) {
if (!nixio__addr_parse(&addr, (struct sockaddr *)&saddr)) {
lua_pushstring(L, addr.host);
- lua_pushnumber(L, addr.port);
+ lua_pushinteger(L, addr.port);
return 3;
} else {
return 1;
#include <stdlib.h>
/* 52 bit maximum precision */
-#define NIXIO_BIT_BMAX 52
-#define NIXIO_BIT_NMAX 0xfffffffffffff
+#define NIXIO_BIT_BMAX 32
+#define NIXIO_BIT_NMAX 0xffffffff
#define NIXIO_BIT_XOP(BIT_XOP) \
- uint64_t oper = luaL_checknumber(L, 1); \
+ uint64_t oper = luaL_checkinteger(L, 1); \
const int args = lua_gettop(L); \
\
for (int i = 2; i <= args; i++) { \
- uint64_t oper2 = luaL_checknumber(L, i); \
+ uint64_t oper2 = luaL_checkinteger(L, i); \
oper BIT_XOP oper2; \
} \
\
- lua_pushnumber(L, oper); \
+ lua_pushinteger(L, oper); \
return 1; \
}
static int nixio_bit_not(lua_State *L) {
- lua_pushnumber(L, (~((uint64_t)luaL_checknumber(L, 1))) & NIXIO_BIT_NMAX);
+ lua_pushinteger(L, (~((uint64_t)luaL_checkinteger(L, 1))) & NIXIO_BIT_NMAX);
return 1;
}
static int nixio_bit_shl(lua_State *L) {
- uint64_t oper = luaL_checknumber(L, 1);
+ uint64_t oper = luaL_checkinteger(L, 1);
oper <<= luaL_checkinteger(L, 2);
if (oper > NIXIO_BIT_NMAX) {
return luaL_error(L, "arithmetic overflow");
} else {
- lua_pushnumber(L, oper);
+ lua_pushinteger(L, oper);
return 1;
}
}
static int nixio_bit_ashr(lua_State *L) {
- int64_t oper = luaL_checknumber(L, 1);
- lua_pushnumber(L, oper >> luaL_checkinteger(L, 2));
+ int64_t oper = luaL_checkinteger(L, 1);
+ lua_pushinteger(L, oper >> luaL_checkinteger(L, 2));
return 1;
}
static int nixio_bit_shr(lua_State *L) {
- uint64_t oper = luaL_checknumber(L, 1);
- lua_pushnumber(L, oper >> luaL_checkinteger(L, 2));
+ uint64_t oper = luaL_checkinteger(L, 1);
+ lua_pushinteger(L, oper >> luaL_checkinteger(L, 2));
return 1;
}
}
static int nixio_bit_check(lua_State *L) {
- uint64_t oper = luaL_checknumber(L, 1);
- uint64_t oper2 = luaL_checknumber(L, 2);
+ uint64_t oper = luaL_checkinteger(L, 1);
+ uint64_t oper2 = luaL_checkinteger(L, 2);
lua_pushboolean(L, (oper & oper2) == oper2);
return 1;
}
static int nixio_bit_cast(lua_State *L) {
- lua_pushnumber(L, ((uint64_t)luaL_checknumber(L, 1)) & NIXIO_BIT_NMAX);
+ lua_pushinteger(L, ((uint64_t)luaL_checkinteger(L, 1)) & NIXIO_BIT_NMAX);
return 1;
}
static int nixio_bit_swap(lua_State *L) {
- uint64_t op = luaL_checknumber(L, 1);
+ uint64_t op = luaL_checkinteger(L, 1);
op = (op >> 24) | ((op >> 8) & 0xff00) | ((op & 0xff00) << 8) | (op << 24);
- lua_pushnumber(L, op);
+ lua_pushinteger(L, op);
return 1;
}
void nixio_open_bit(lua_State *L) {
lua_newtable(L);
luaL_register(L, NULL, R);
- lua_pushnumber(L, NIXIO_BIT_BMAX);
+ lua_pushinteger(L, NIXIO_BIT_BMAX);
lua_setfield(L, -2, "bits");
- lua_pushnumber(L, NIXIO_BIT_NMAX);
+ lua_pushinteger(L, NIXIO_BIT_NMAX);
lua_setfield(L, -2, "max");
lua_setfield(L, -2, "bit");
}
static int nixio_file_seek(lua_State *L) {
int fd = nixio__checkfd(L, 1);
- off_t len = (off_t)luaL_checknumber(L, 2);
+ off_t len = (off_t)luaL_checkinteger(L, 2);
int whence;
const char *whstr = luaL_optlstring(L, 3, "set", NULL);
if (!strcmp(whstr, "set")) {
if (len == -1) {
return nixio__perror(L);
} else {
- lua_pushnumber(L, len);
+ lua_pushinteger(L, len);
return 1;
}
}
if (pos < 0) {
return nixio__perror(L);
} else {
- lua_pushnumber(L, pos);
+ lua_pushinteger(L, pos);
return 1;
}
}
static int nixio_file_lock(lua_State *L) {
int fd = nixio__checkfd(L, 1);
const char *flag = luaL_checkstring(L, 2);
- off_t len = (off_t)luaL_optnumber(L, 3, 0);
+ off_t len = (off_t)luaL_optinteger(L, 3, 0);
int stat;
int cmd = 0;
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));
}
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);
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;
nixio_addr naddr;
if (!nixio__addr_parse(&naddr, (struct sockaddr *)&addrobj)) {
lua_pushstring(L, naddr.host);
- lua_pushnumber(L, naddr.port);
+ lua_pushinteger(L, naddr.port);
return 3;
} else {
return 1;
nixio_open_tls_socket(L);
/* module version */
- lua_pushnumber(L, VERSION);
+ lua_pushinteger(L, VERSION);
lua_setfield(L, -2, "version");
/* some constants */
return nixio__perror(L);
} else {
lua_createtable(L, 0, 4);
- lua_pushnumber(L, buf.tms_cstime);
+ lua_pushinteger(L, buf.tms_cstime);
lua_setfield(L, -2, "cstime");
- lua_pushnumber(L, buf.tms_cutime);
+ lua_pushinteger(L, buf.tms_cutime);
lua_setfield(L, -2, "cutime");
- lua_pushnumber(L, buf.tms_stime);
+ lua_pushinteger(L, buf.tms_stime);
lua_setfield(L, -2, "stime");
- lua_pushnumber(L, buf.tms_utime);
+ lua_pushinteger(L, buf.tms_utime);
lua_setfield(L, -2, "utime");
return 1;
lua_createtable(L, 0, 12);
- lua_pushnumber(L, info.bufferram);
+ lua_pushinteger(L, info.bufferram);
lua_setfield(L, -2, "bufferram");
- lua_pushnumber(L, info.freehigh);
+ lua_pushinteger(L, info.freehigh);
lua_setfield(L, -2, "freehigh");
- lua_pushnumber(L, info.freeram);
+ lua_pushinteger(L, info.freeram);
lua_setfield(L, -2, "freeram");
- lua_pushnumber(L, info.freeswap);
+ lua_pushinteger(L, info.freeswap);
lua_setfield(L, -2, "freeswap");
lua_createtable(L, 0, 3);
}
lua_setfield(L, -2, "loads");
- lua_pushnumber(L, info.mem_unit);
+ lua_pushinteger(L, info.mem_unit);
lua_setfield(L, -2, "mem_unit");
- lua_pushnumber(L, info.procs);
+ lua_pushinteger(L, info.procs);
lua_setfield(L, -2, "procs");
- lua_pushnumber(L, info.sharedram);
+ lua_pushinteger(L, info.sharedram);
lua_setfield(L, -2, "sharedram");
- lua_pushnumber(L, info.totalhigh);
+ lua_pushinteger(L, info.totalhigh);
lua_setfield(L, -2, "totalhigh");
- lua_pushnumber(L, info.totalram);
+ lua_pushinteger(L, info.totalram);
lua_setfield(L, -2, "totalram");
- lua_pushnumber(L, info.totalswap);
+ lua_pushinteger(L, info.totalswap);
lua_setfield(L, -2, "totalswap");
- lua_pushnumber(L, info.uptime);
+ lua_pushinteger(L, info.uptime);
lua_setfield(L, -2, "uptime");
return 1;
return nixio__perror_s(L);
}
lua_pushstring(L, buf);
- lua_pushnumber(L, val.ipv6mr_interface);
+ lua_pushinteger(L, val.ipv6mr_interface);
return 2;
}
} else {
return nixio__perror(L);
}
- lua_pushnumber(L, spliced);
+ lua_pushinteger(L, spliced);
return 1;
}
}
#endif
- lua_pushnumber(L, spliced);
+ lua_pushinteger(L, spliced);
return 1;
}
struct group *gr;
errno = 0;
if (lua_isnumber(L, 1)) {
- gr = getgrgid(lua_tonumber(L, 1));
+ gr = getgrgid(lua_tointeger(L, 1));
} else if (lua_isstring(L, 1)) {
gr = getgrnam(lua_tostring(L, 1));
} else if (lua_isnoneornil(L, 1)) {
struct passwd *pw;
errno = 0;
if (lua_isnumber(L, 1)) {
- pw = getpwuid(lua_tonumber(L, 1));
+ pw = getpwuid(lua_tointeger(L, 1));
} else if (lua_isstring(L, 1)) {
pw = getpwnam(lua_tostring(L, 1));
} else if (lua_isnoneornil(L, 1)) {