This is mostly to provide cleaner code for future changes to copy from
as other changes are already copying somewhat dubious existing
patterns in these routines.
- Use NULL instead of casting 0 to pointer types.
- Inline readone() in the sole caller now that it is just a single line.
- Use a helper variable for the count of items on each line of output in readit().
- Fix the double space in the middle of byte output to only trigger for width 1. For other widths it would output spurious spaces at the end of the line which doesn't really hurt, but is buggy nonetheless.
- Avoid using implicit booleans by explicitly comparing integer expressions against zero.
- Don't compare the endptr returned from strtol() against NULL.