Messages in this thread | | | Date | Wed, 30 May 2007 15:03:07 -0700 | From | Randy Dunlap <> | Subject | Re: [PATCH 1/3] hexdump: more output formatting |
| |
Satyam Sharma wrote: > Hello Randy, > >> Add a prefix string parameter. Callers are responsible for any >> string length/alignment that they want to see in the output. I.e., >> callers should pad strings to achieve alignment if they want that. >> >> Add rowsize parameter. This is the number of raw data bytes >> to be printed per line. Must be 16 or 32. >> >> Add a group_size parameter. This allows callers to dump values >> as 1-byte, 2-byte, 4-byte, or 8-byte numbers. Default is >> 1-byte numbers. If the total length is not an even multiple >> of group_size, 1-byte numbers are printed. > > I wonder if (over-)engineering could hurt its adoption by more kernel > users. There aren't very many 8-argument monsters in the kernel, > and one would expect hexdump() to be easier on the fingers to > type? :-) Why not just continue with reasonable default/fixed rowsize > and groupsize values?
Yes, one can try to satisfy the users/callers by adapting to their needs (wishes), which requires parameters or such; or one can have no callers and end up with (around 11 currently) different hex dump functions in the kernel source tree, but no users of lib/hexdump.c.
But it won't take much more "requirements" for me to drop the patch.
>> Add an "ascii" output parameter. This causes ASCII data output >> following the hex data output. > [...] >> + if (!ascii) >> + goto nil; >> + >> + if ((lx + 1) < linebuflen) >> linebuf[lx++] = ' '; >> - } >> - for (j = 0; (j < 16) && (j < len) && (lx + 2) < linebuflen; j++) >> + for (j = 0; (j < rowsize) && (j < len) && (lx + 2) < >> linebuflen; j++) >> linebuf[lx++] = isprint(ptr[j]) ? ptr[j] : '.'; >> +nil: >> linebuf[lx++] = '\0'; > > if (ascii) { > ... > } > > linebuf[lx++] = '\0'; > > would help lose a goto and label.
The label has another reference already, so it wouldn't be lost.
But the if (ascii) block could be added...
-- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |