[Toybox] [PATCH] xxd: -d Decimal Lables flag, Don't cap at one file

Oliver Webb aquahobbyist at proton.me
Mon Apr 22 14:23:19 PDT 2024


> On Sat, Apr 20, 2024 at 7:38 PM Oliver Webb via Toybox
> toybox at lists.landley.net wrote:

> > xxd also runs on average about 5 times slower than vim xxd, this is
> > because of read reading 16 bytes at a time, also not hard to fix, but
> > very hard to fix cleanly.
> 
> 
> really? a quick glance suggests it reads blocks of sizeof(toybuf)? (or
> "whatever stdio is using for its buffer" in the -r case.)
 
strace-ing it shows:

read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 16

And if you pass in -c 12 to it:

read(0, "\0\0\0\0\0\0\0\0\0\0\0\0", 12) = 12

In practice, it's always what -c is

> > xxd has a -d flag to do decimal address lables that I added in this patch.
> 
> do you have a use for that? i saw it and ignored it when
> implementing toybox xxd because i couldn't even imagine a use for
> decimal addresses...

Trying to do math with them in awk or expr or some other program where numbers
are always read as base 10:

$ head -c 0xf
head: invalid number of bytes: ‘0xf’

I think the ability to read base 16 numbers and prefixes in toybox is a really
cool consequence of everything being in one binary. But almost every other utility
set doesn't have it because most aren't multi-call binaries.

- Oliver Webb aquahobbyist at proton.me



More information about the Toybox mailing list