On Mon, Apr 22, 2024 at 2:23 PM Oliver Webb <aquahobby...@proton.me> wrote:
>
> > On Sat, Apr 20, 2024 at 7:38 PM Oliver Webb via Toybox
> > toybox@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

ah, yeah, the _include_ path uses the full buffer and -r uses stdio
buffering, but "regular" xxd was doing neither. i've sent out the
trivial patch to switch to stdio.

> > > 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 aquahobby...@proton.me
>
_______________________________________________
Toybox mailing list
Toybox@lists.landley.net
http://lists.landley.net/listinfo.cgi/toybox-landley.net

Reply via email to