diff options
Diffstat (limited to 'sbin/sysctl/sysctl.c')
-rw-r--r-- | sbin/sysctl/sysctl.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c index 1c49856..8ae3cbd 100644 --- a/sbin/sysctl/sysctl.c +++ b/sbin/sysctl/sysctl.c @@ -398,9 +398,13 @@ show_var(int *oid, int nlen) case 'I': if (!nflag) printf("%s: ", name); + fmt++; val = ""; while (len >= sizeof(int)) { - printf("%s%d", val, *(int *)p); + if(*fmt == 'U') + printf("%s%u", val, *(unsigned int *)p); + else + printf("%s%d", val, *(int *)p); val = " "; len -= sizeof (int); p += sizeof (int); @@ -410,7 +414,11 @@ show_var(int *oid, int nlen) case 'L': if (!nflag) printf("%s: ", name); - printf("%ld", *(long *)p); + fmt++; + if(*fmt == 'U') + printf("%lu", *(unsigned long *)p); + else + printf("%ld", *(long *)p); return (0); case 'P': |