From 478b5ac2bcdb5014d8e6a6e8d7647b4c599cc1a7 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 11 Apr 2023 20:29:59 +0200 Subject: seq: fix yet another case of negative parameters not working Signed-off-by: Denys Vlasenko --- coreutils/seq.c | 8 ++++++-- testsuite/seq.tests | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/coreutils/seq.c b/coreutils/seq.c index c0e2d1e06..77a8aba8a 100644 --- a/coreutils/seq.c +++ b/coreutils/seq.c @@ -57,8 +57,12 @@ int seq_main(int argc, char **argv) saved = argv[++n]; if (!saved) break; - if (saved[0] != '-') - break; + if (saved[0] != '-') { + // break; // "seq -s : -1 1" won't be treated correctly + continue; + } +// "seq -s -1 1 9" is not treated correctly, but such usage +// (delimiter string which looks like negative number) is very unlikely c = saved[1]; if (c == '.' || (c >= '0' && c <= '9')) { argv[n] = NULL; diff --git a/testsuite/seq.tests b/testsuite/seq.tests index d414169c9..d0da8c119 100755 --- a/testsuite/seq.tests +++ b/testsuite/seq.tests @@ -45,5 +45,6 @@ testing "seq count by .3 with padding 2" "seq -w 03 .3 0004" "0003.0\n0003.3\n00 testing "seq from -4 count down by 2" "seq -4 -2 -8" "-4\n-6\n-8\n" "" "" testing "seq from -.0 count down by .25" "seq -.0 -.25 -.9" "-0.00\n-0.25\n-0.50\n-0.75\n" "" "" +testing "seq -s : with negative start" "seq -s : -1 1" "-1:0:1\n" "" "" exit $FAILCOUNT -- cgit v1.2.3-55-g6feb