diff --git a/coreutils/seq.c b/coreutils/seq.c index f4d891772..0df094001 100644 --- a/coreutils/seq.c +++ b/coreutils/seq.c @@ -29,13 +29,11 @@ int seq_main(int argc, char **argv) } /* You should note that this is pos-5.0.91 semantics, -- FK. */ - if (first <= last ? increment > 0 : increment < 0) { - for (i = first; - (first <= last) ? (i <= last) : (i >= last); - i += increment) - { - printf("%g\n", i); - } + for (i = first; + (increment > 0 && i <= last) || (increment < 0 && i >=last); + i += increment) + { + printf("%g\n", i); } return EXIT_SUCCESS; diff --git a/testsuite/seq.tests b/testsuite/seq.tests index 4b2524b19..2a76d86f9 100755 --- a/testsuite/seq.tests +++ b/testsuite/seq.tests @@ -22,10 +22,10 @@ testing "seq one argument" "seq 3" "1\n2\n3\n" "" "" testing "seq two arguments" "seq 5 7" "5\n6\n7\n" "" "" testing "seq two arguments reversed" "seq 7 5" "" "" "" testing "seq two arguments equal" "seq 3 3" "3\n" "" "" -# test negative non-null step -testing "seq two arguments equal, arbitrary negative step" "seq 1 -15 1" "1\n" "" "" -# test positive non-null step -testing "seq two arguments equal, arbitrary positive step" "seq 1 +15 1" "1\n" "" "" +testing "seq two arguments equal, arbitrary negative step" "seq 1 -15 1" \ + "1\n" "" "" +testing "seq two arguments equal, arbitrary positive step" "seq 1 +15 1" \ + "1\n" "" "" testing "seq count up by 2" "seq 4 2 8" "4\n6\n8\n" "" "" testing "seq count down by 2" "seq 8 -2 4" "8\n6\n4\n" "" "" testing "seq count wrong way #1" "seq 4 -2 8" "" "" ""