summaryrefslogtreecommitdiffstats
path: root/sbin/sysctl
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/sysctl')
-rw-r--r--sbin/sysctl/sysctl.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c
index efa8825..85621e0 100644
--- a/sbin/sysctl/sysctl.c
+++ b/sbin/sysctl/sysctl.c
@@ -563,7 +563,12 @@ show_var(int *oid, int nlen)
fputs(val, stdout);
if(*fmt == 'U')
printf(hflag ? "%'u" : "%u", *(unsigned int *)p);
- else
+ else if (*fmt == 'K') {
+ if (*(int *)p < 0)
+ printf("%d", *(int *)p);
+ else
+ printf("%d.%dC", (*(int *)p - 2732) / 10, (*(int *)p - 2732) % 10);
+ } else
printf(hflag ? "%'d" : "%d", *(int *)p);
val = " ";
len -= sizeof(int);
@@ -580,7 +585,12 @@ show_var(int *oid, int nlen)
fputs(val, stdout);
if(*fmt == 'U')
printf(hflag ? "%'lu" : "%lu", *(unsigned long *)p);
- else
+ else if (*fmt == 'K') {
+ if (*(long *)p < 0)
+ printf("%ld", *(long *)p);
+ else
+ printf("%ld.%ldC", (*(long *)p - 2732) / 10, (*(long *)p - 2732) % 10);
+ } else
printf(hflag ? "%'ld" : "%ld", *(long *)p);
val = " ";
len -= sizeof(long);
OpenPOWER on IntegriCloud