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.
This commit is contained in:
Adrian Chadd 2008-09-11 09:55:54 +00:00
parent 4028a36726
commit ab8ac08e14
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=182927

View File

@ -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;
snprintf(devbuf, sizeof(devbuf), "%s%d",
cur.dinfo->devices[di].device_name,
cur.dinfo->devices[di].unit_number);
if (oflag > 0)
(void)printf("%12.6s%d ",
cur.dinfo->devices[di].device_name,
cur.dinfo->devices[di].unit_number);
(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++;
}
}