[Toybox] strings tests and bugfixes

Ilya Kuzmich ilya.kuzmich at gmail.com
Wed Jun 14 06:04:43 PDT 2017


ping?
On 01/06, Ilya Kuzmich wrote:
> On 01/06, Rob Landley wrote:
> > On 05/28/2017 11:25 PM, Ilya Kuzmich wrote:
> > > Found and fixed some strings bugs. duh.
> > 
> > Sorry for the delay, I started a new Japanese class at the local
> > community college (one of those compressed summer session things) and
> > between that and $DAYJOB everything else is mostly just on weekends
> > right now. :)
> > 
> > I glanced at this one to see if it was trivial to apply but:
> > 
> > -    if (nread < 1) break;
> > +    if (nread < 1) {
> > +      if (count == wlen) xputc('\n');
> > +      break;
> > +    }
> > 
> > We have \n at the end of strings already? Under what circumstances would
> > it _not_ output them?
> > 
> >   make strings
> >   $ diff -u <(./strings strings) <(strings strings) | wc
> >   	0	0	0
> current implementation doesn't output newline if last byte does matches:
> if (((toybuf[i] >= 32) && (toybuf[i] <= 126)) || (toybuf[i] == '\t')) {
> 
> for example:
> 
> $ echo -n 'fooo' | strings
> fooo
> $ echo -n 'fooo' | ./toybox strings
> fooo$
> # note the missing newline
> 
> > 
> > As for the offset+1 bit...
> > 
> >   $ ./strings -o strings | head -n 3
> >       567 /lib64/ld-linux-x86-64.so.2
> >       646 g"X7
> >      1600 libc.so.6
> >   $ strings -o strings | head -n 3
> >      1070 /lib64/ld-linux-x86-64.so.2
> >      1207 g"X7
> >      3101 libc.so.6
> > 
> > I don't see how +1 addresses that? (Or what exactly is going on there.)
> gnu strings use octal offsets by default
> toybox strings use decimal, but one-off:
> 
> $ echo fooo | ./toybox strings -o
>      -1 fooo
> 
> > 
> > Rob


More information about the Toybox mailing list