tsort now accepts and ignores -w.
-** Performance improvements
+** Improvements
'factor' is now much faster at identifying large prime numbers,
and significantly faster on composite numbers greater than 2^128.
+ 'seq' is more accurate with large integer start values.
+ Previously 'seq 18446744073709551617 inf | head -n1' would
+ output the number before the user specified start value.
+
** Build-related
cksum was not compilable by Apple LLVM 10.0.0 x86-64, which
usage (EXIT_FAILURE);
}
+ char const *user_start = n_args == 1 ? "1" : argv[optind];
+
/* If the following hold:
- no format string, [FIXME: relax this, eventually]
- integer start (or no start)
&& all_digits_p (argv[optind + 2])))
&& !equal_width && !format_str && strlen (separator) == 1)
{
- char const *s1 = n_args == 1 ? "1" : argv[optind];
+ char const *s1 = user_start;
char const *s2 = argv[optind + (n_args - 1)];
seq_fast (s1, s2, step.value);
}
{
char *s1;
char *s2;
- if (asprintf (&s1, "%0.Lf", first.value) < 0)
+ if (all_digits_p (user_start))
+ s1 = xstrdup (user_start);
+ else if (asprintf (&s1, "%0.Lf", first.value) < 0)
xalloc_die ();
if (! isfinite (last.value))
s2 = xstrdup ("inf"); /* Ensure "inf" is used. */
b=$INTMAX_OFLOW
seq $a $b > out || fail=1
-printf "$a\n$b\n" > exp || fail=1
+printf "$a\n$b\n" > exp || framework_failure_
+compare exp out || fail=1
+
+# Test case fixed in v9.8
+# I.e. All digit start, with non digits end
+a=18446744073709551617
+seq $a inf | head -n1 > out || fail=1
+printf "$a\n" > exp || framework_failure_
compare exp out || fail=1
Exit $fail