From a03811f5196aec86fd8eb682bd55bdff266f1451 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 17 Nov 2007 09:39:42 +0100 Subject: "seq .1 .1" would mistakenly generate no output on some systems * NEWS: Say this. * src/seq.c (print_numbers): Handle another floating point corner case. This avoids failure of seq's eq-wid-7 test on FreeBSD 6.1. --- src/seq.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/seq.c') diff --git a/src/seq.c b/src/seq.c index d7d2521b1..77d558697 100644 --- a/src/seq.c +++ b/src/seq.c @@ -280,7 +280,13 @@ print_numbers (char const *fmt, struct layout layout, free (x_str); } - break; + /* With floating point arithmetic, we may well reach this point + with i == 0 and first == last. E.g., ./seq .1 .1 on FreeBSD 6.1. + Hence the first conjunct: don't break out of this loop when + i == 0. *unless* first and last themselves are out of order, + in which case we must print nothing, e.g. for ./seq -1 */ + if (i || last < first) + break; } if (i) -- cgit v1.2.3-54-g00ecf