ports/devel/lua-sysctl/files/extra-patch-src__lua_sysctl.c
Renato Botelho df8ba9125f Fix build on 9.x
PR:		ports/163073
Submitted by:	Kan Sasaki <sasaki@fcc.ad.jp>
2011-12-28 15:21:51 +00:00

45 lines
1.6 KiB
C

--- src/lua_sysctl.c.orig 2011-12-05 09:47:49.000000000 +0900
+++ src/lua_sysctl.c 2011-12-05 09:57:48.000000000 +0900
@@ -257,6 +257,7 @@
long longval;
unsigned long ulongval;
quad_t quadval;
+ u_quad_t uquadval;
size_t s, newsize = 0;
u_int kind;
char fmt[BUFSIZ], key[BUFSIZ], nvalbuf[BUFSIZ];
@@ -293,7 +294,8 @@
(kind & CTLTYPE) == CTLTYPE_UINT ||
(kind & CTLTYPE) == CTLTYPE_LONG ||
(kind & CTLTYPE) == CTLTYPE_ULONG ||
- (kind & CTLTYPE) == CTLTYPE_QUAD) {
+ (kind & CTLTYPE) == CTLTYPE_S64 ||
+ (kind & CTLTYPE) == CTLTYPE_U64) {
if (strlen(newval) == 0)
return (luaL_error(L, "empty numeric value"));
}
@@ -343,7 +345,7 @@
break;
case CTLTYPE_STRING:
break;
- case CTLTYPE_QUAD:
+ case CTLTYPE_S64:
quadval = (quad_t)strtonum(newval, LLONG_MIN, LLONG_MAX, &errmsg);
if (errmsg) {
return (luaL_error(L, "bad quad_t integer: %s (%s)",
@@ -352,6 +354,15 @@
newval = &quadval;
newsize = sizeof(quadval);
break;
+ case CTLTYPE_U64:
+ uquadval = (u_quad_t)strtonum(newval, 0, ULLONG_MAX, &errmsg);
+ if (errmsg) {
+ return (luaL_error(L, "bad unsigned quad_t integer: %s (%s)",
+ (char *)newval, errmsg));
+ }
+ newval = &uquadval;
+ newsize = sizeof(uquadval);
+ break;
case CTLTYPE_OPAQUE:
if (strcmp(fmt, "T,dev_t") == 0) {
set_T_dev_t(L, newval, &newval, &newsize);