On 12/12/14 17:19, Robert Thompson wrote:
> I ran across a variance between toybox factor and coreutils factor.
>
> Coreutils factor will accept numbers on stdin separated by any whitespace
> (including newlines and tabs) between integers, but toybox factor was only
> accepting one integer per line.

Really?

  $ factor ""
  factor: `' is not a valid positive integer
  $ factor "32 "
  factor: `32 ' is not a valid positive integer
  $ factor "32 7"
  factor: `32 7' is not a valid positive integer

Must be newer than Ubuntu 12.04... Ah, on _stdin_. Right. Confirmed.

Hmmm... might as well make it take both anyway.

> I added a test for this, and hacked factor to give the expected behavior.
> It's not properly indented, and it depends on isspace(), but it seems to be
> doing the job.

I think you left a debug printf in there, it's making all the tests fail,
including the ones you submitted:

  $ VERBOSE=fail scripts/test.sh factor
  scripts/make.sh
  Generate headers from toys/*/*.c...
  Make generated/config.h from .singleconfig.
  generated/flags.h generated/help.h
  Compile toybox.....
  FAIL: factor -32
  echo -ne '' | factor -32
  --- expected  2014-12-23 20:48:38.689595406 -0600
  +++ actual    2014-12-23 20:48:38.693595406 -0600
  @@ -1 +1,2 @@
  +->: -32
   -32: -1 2 2 2 2 2

A couple other issues:

  @@ -20,9 +20,11 @@
   static void factor(char *s)
   {
     long l, ll;
  +  while( *s && s[0] && ! isspace(s[0]) ) {
  +    printf("->: %s\n",s);
  
     l = strtol(s, &s, 0);

*s and s[0] are the same thing.

  @@ -61,6 +63,7 @@
       }
     }
     xputc('\n');
  +  }
   }

 void factor_main(void)

As you mentioned, you added a curly bracket level without indenting the code.
I could do a tail call and expect the compiler to turn the recursion into
iteration, but reindenting the code properly is worth the noise in the diff.

The version I checked in won't error out for 'factor ""' or 'factor "36 "'
the way Ubuntu's will, but I think I'm ok with that...?

Let me know if there are more things to fix.

Thanks,

Rob
_______________________________________________
Toybox mailing list
[email protected]
http://lists.landley.net/listinfo.cgi/toybox-landley.net

Reply via email to