From f6dcb4683584c820e63f041684eb1b3e8cd8ca5a Mon Sep 17 00:00:00 2001 From: obrien Date: Sat, 12 Aug 2006 23:33:10 +0000 Subject: Add an extension to the UINT & ULONG types. The XINT & XLONG types behave the same, except sysctl(8) will print out the values in hex. --- sbin/sysctl/sysctl.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'sbin/sysctl') diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c index 09569c5..d171ec9 100644 --- a/sbin/sysctl/sysctl.c +++ b/sbin/sysctl/sysctl.c @@ -578,7 +578,11 @@ show_var(int *oid, int nlen) while (len >= sizeof(int)) { fputs(val, stdout); if (*fmt == 'U') - printf(hflag ? "%'u" : "%u", *(unsigned int *)p); + printf(hflag ? "%'u" : "%u", + *(unsigned int *)p); + else if (*fmt == 'X') + printf(hflag ? "%'#010x" : "%#010x", + *(unsigned int *)p); else if (*fmt == 'K') { if (*(long *)p < 0) printf("%ld", *(long *)p); @@ -601,7 +605,11 @@ show_var(int *oid, int nlen) while (len >= sizeof(long)) { fputs(val, stdout); if (*fmt == 'U') - printf(hflag ? "%'lu" : "%lu", *(unsigned long *)p); + printf(hflag ? "%'lu" : "%lu", + *(unsigned long *)p); + else if (*fmt == 'X') + printf(hflag ? "%'#018lx" : "%#018lx", + *(unsigned long *)p); else if (*fmt == 'K') { if (*(long *)p < 0) printf("%ld", *(long *)p); -- cgit v1.1