summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rw-r--r--src/seq.c2
-rwxr-xr-xtests/misc/seq.pl4
3 files changed, 10 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 34754bb17..26939c178 100644
--- a/NEWS
+++ b/NEWS
@@ -51,6 +51,10 @@ GNU coreutils NEWS -*- outline -*-
the output numbers are properly aligned and of the correct width.
[This bug was present in "the beginning".]
+ seq -w ensures correct alignment when the step value includes a precision
+ while the start value does not, and the number sequence narrows.
+ [This bug was present in "the beginning".]
+
seq -s no longer prints an erroneous newline after the first number, and
outputs a newline after the last number rather than a trailing separator.
[bug introduced in coreutils-8.20]
diff --git a/src/seq.c b/src/seq.c
index 22e5ec5da..5ad5fad94 100644
--- a/src/seq.c
+++ b/src/seq.c
@@ -336,6 +336,8 @@ get_default_format (operand first, operand step, operand last)
last_width--; /* don't include space for '.' */
if (last.precision == 0 && prec)
last_width++; /* include space for '.' */
+ if (first.precision == 0 && prec)
+ first_width++; /* include space for '.' */
size_t width = MAX (first_width, last_width);
if (width <= INT_MAX)
{
diff --git a/tests/misc/seq.pl b/tests/misc/seq.pl
index 40a75714d..64c62b2bc 100755
--- a/tests/misc/seq.pl
+++ b/tests/misc/seq.pl
@@ -77,6 +77,10 @@ my @Tests =
['eq-wid-11',qw(-w -1.e-3 1), {OUT => [qw(-0.001 00.999)]}],
['eq-wid-12',qw(-w -1.0e-4 1), {OUT => [qw(-0.00010 00.99990)]}],
['eq-wid-13',qw(-w 999 1e3), {OUT => [qw(0999 1000)]}],
+ # Prior to 8.21, if the start value hadn't a precision, while step did,
+ # then misalignment would occur if the sequence narrowed.
+ ['eq-wid-14',qw(-w -1 1.0 0), {OUT => [qw(-1.0 00.0)]}],
+ ['eq-wid-15',qw(-w 10 -.1 9.9), {OUT => [qw(10.0 09.9)]}],
# Prior to coreutils-4.5.11, some of these were not accepted.
['fmt-1', qw(-f %2.1f 1.5 .5 2),{OUT => [qw(1.5 2.0)]}],