mirror of
https://git.freebsd.org/ports.git
synced 2025-07-11 06:19:19 -04:00
45 lines
1.6 KiB
C
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);
|