From 0d6a982e10174323c8b14954cf327f73604b8453 Mon Sep 17 00:00:00 2001 From: adrian Date: Thu, 11 Sep 2008 09:55:54 +0000 Subject: Fix the device name spacing. The old logic padded the device name out but assumed the unit number was one digit long; this fails for things like SATA devices which (for me) begin at ad10. Assemble the full device name in a temporary buffer and then calcluate padding based on that string. --- usr.sbin/iostat/iostat.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/usr.sbin/iostat/iostat.c b/usr.sbin/iostat/iostat.c index d8e0bf4..40d78ab 100644 --- a/usr.sbin/iostat/iostat.c +++ b/usr.sbin/iostat/iostat.c @@ -667,6 +667,7 @@ static void phdr(void) { int i, printed; + char devbuf[256]; /* * If xflag is set, we need a per-loop header, not a page header, so @@ -682,14 +683,13 @@ phdr(void) if ((dev_select[i].selected != 0) && (dev_select[i].selected <= maxshowdevs)) { di = dev_select[i].position; - if (oflag > 0) - (void)printf("%12.6s%d ", + snprintf(devbuf, sizeof(devbuf), "%s%d", cur.dinfo->devices[di].device_name, cur.dinfo->devices[di].unit_number); + if (oflag > 0) + (void)printf("%13.6s ", devbuf); else - printf("%15.6s%d ", - cur.dinfo->devices[di].device_name, - cur.dinfo->devices[di].unit_number); + printf("%16.6s ", devbuf); printed++; } } -- cgit v1.1