summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2014-06-18 14:30:57 +0100
committerPádraig Brady <P@draigBrady.com>2014-06-18 18:05:02 +0100
commit5ad16c2a0f11e48f1b1e3968b7b390591ce6f908 (patch)
treec4790e332c6cdc371a6c2cd8babe98979fd47d3a
parent8a51bd37362cdbfc2fab50458a67452a546dcfaf (diff)
downloadcoreutils-5ad16c2a0f11e48f1b1e3968b7b390591ce6f908.tar.xz
seq: fix incorrect output with start or end of -0
* src/seq.c (main): Avoid seq_fast() with a start or end of -0. * tests/misc/seq.pl: Add test cases. * NEWS: Mention the fix. Fixes http://bugs.gnu.org/17800
-rw-r--r--NEWS3
-rw-r--r--src/seq.c2
-rwxr-xr-xtests/misc/seq.pl3
3 files changed, 7 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 5d1fe9940..77286f884 100644
--- a/NEWS
+++ b/NEWS
@@ -74,6 +74,9 @@ GNU coreutils NEWS -*- outline -*-
ptx now consistently trims whitespace when processing multiple files.
[This bug was present in "the beginning".]
+ seq again generates correct output with start or end values = -0.
+ [bug introduced in coreutils-8.20.]
+
shuf --repeat no longer dumps core if the input is empty.
[bug introduced with the --repeat feature in coreutils-8.22]
diff --git a/src/seq.c b/src/seq.c
index 8fced4a0e..1124358cf 100644
--- a/src/seq.c
+++ b/src/seq.c
@@ -604,7 +604,7 @@ main (int argc, char **argv)
if (asprintf (&s2, "%0.Lf", last.value) < 0)
xalloc_die ();
- if (seq_fast (s1, s2))
+ if (*s1 != '-' && *s2 != '-' && seq_fast (s1, s2))
{
IF_LINT (free (s1));
IF_LINT (free (s2));
diff --git a/tests/misc/seq.pl b/tests/misc/seq.pl
index 329e1dfb2..924843637 100755
--- a/tests/misc/seq.pl
+++ b/tests/misc/seq.pl
@@ -143,6 +143,9 @@ my @Tests =
['not-fast-1', qw(1 3 1), {OUT => [qw(1)]}],
['not-fast-2', qw(1 1 4.2), {OUT => [qw(1 2 3 4)]}],
['not-fast-3', qw(1 1 0)],
+ # In 8.20..8.22 a start or end of -0 was broken
+ ['not-fast-4', qw(-0 10), {OUT => [qw(-0 1 2 3 4 5 6 7 8 9 10)]}],
+ ['not-fast-5', qw(1 -0)],
# Ensure the correct parameters are passed to the fast path
['fast-1', qw(4), {OUT => [qw(1 2 3 4)]}],