<div dir="ltr">I ran across a variance between toybox factor and coreutils factor. <div><br></div><div>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.</div><div><br></div><div>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.</div><div><div><br></div><div><br></div><div><br></div><div><div>diff -r 51b7d1af353b tests/factor.test</div><div>--- a/tests/factor.test<span class="" style="white-space:pre">       </span>Thu Dec 11 20:17:28 2014 -0600</div><div>+++ b/tests/factor.test<span class="" style="white-space:pre">      </span>Fri Dec 12 17:10:49 2014 -0600</div><div>@@ -16,3 +16,7 @@</div><div>         "10000000018: 2 131 521 73259\n" "" ""</div><div> testing "factor 10000000019" "factor 10000000019" \</div><div>         "10000000019: 10000000019\n" "" ""</div><div>+</div><div>+testing "factor 3 6 from stdin" "factor" "3: 3\n6: 2 3\n" "" "3 6"</div><div>+testing "factor stdin newline" "factor" "3: 3\n6: 2 3\n" "" "3\n6\n"</div><div>+</div><div>diff -r 51b7d1af353b toys/other/factor.c</div><div>--- a/toys/other/factor.c<span class="" style="white-space:pre">     </span>Thu Dec 11 20:17:28 2014 -0600</div><div>+++ b/toys/other/factor.c<span class="" style="white-space:pre">    </span>Fri Dec 12 17:10:49 2014 -0600</div><div>@@ -20,9 +20,11 @@</div><div> static void factor(char *s)</div><div> {</div><div>   long l, ll;</div><div>+  while( *s && s[0] && ! isspace(s[0]) ) {</div><div>+    printf("->: %s\n",s);</div><div> </div><div>   l = strtol(s, &s, 0);</div><div>-  if (*s) {</div><div>+  if (*s && s[0] > 32 ) {</div><div>     error_msg("%s: not integer");</div><div>     return;</div><div>   }</div><div>@@ -35,10 +37,10 @@</div><div>     l *= -1;</div><div>   }</div><div> </div><div>-  // Deal with 0 and 1 (and 2 since we're here)</div><div>-  if (l < 3) {</div><div>+  // Deal with 0..3</div><div>+  if (l < 4) {</div><div>     printf(" %ld\n", l);</div><div>-    return;</div><div>+    continue;</div><div>   }</div><div> </div><div>   // Special case factors of 2</div><div>@@ -61,6 +63,7 @@</div><div>     }</div><div>   }</div><div>   xputc('\n');</div><div>+  }</div><div> }</div><div> </div><div> void factor_main(void)</div></div><div><br></div></div></div>