Subject: bug#15068: `seq' prints the numbers from FIRST to (maybe almost) LAST by INCREMENT

From: Bernhard Voelker <[email-masked]>
Date: Sat, 10 Aug 2013 17:20:43 +0200

On 08/10/2013 03:56 PM, [email-masked] wrote:
> (info "(coreutils) seq invocation")
> 
>         ... seq [OPTION]... FIRST INCREMENT LAST
> 
>        `seq' prints the numbers from FIRST to LAST by INCREMENT.  By
>     default, each number is printed on a separate line.  When INCREMENT is
>     not specified, it defaults to `1', even when FIRST is larger than LAST.
>     FIRST also defaults to `1'.  So `seq 1' prints `1', but `seq 0' and
>     `seq 10 5' produce no output.  Floating-point numbers may be specified.
>     *Note Floating point::.
> 
> OK but I think you forgot to mention cases like
> 
> $ seq 0 5 17
> 
> Will the last value printed be
> 15, 17, or 20?
> the user wonders. Hard to tell from the man/info page.

Thanks for the report.

The following should fix it.

Have a nice day,
Berny

>From 4e9f5eb4e2f7614b74c1f930312acc455cc106e7 Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <[email-masked]>
Date: Sat, 10 Aug 2013 17:19:06 +0200
Subject: [PATCH] doc: clarify when seq ends

* doc/coreutils.texi (seq invocation): Add a sentence clarifying
that seq terminates when LAST becomes smaller than the current number
plus INCREMENT.
* src/seq.c (usage): Likewise.
Fixes http://bugs.gnu.org/15068
---
 doc/coreutils.texi | 3 +++
 src/seq.c          | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index aef5cc9..21216b4 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -16810,6 +16810,9 @@ When @var{increment} is not specified, it defaults to @samp{1},
 even when @var{first} is larger than @var{last}.
 @var{first} also defaults to @samp{1}.  So @code{seq 1} prints
 @samp{1}, but @code{seq 0} and @code{seq 10 5} produce no output.
+The sequence of numbers ends when the sum of the current number and
+@var{increment} would become greater than @var{last},
+so @code{seq 1 10 10} only produces @samp{1}.
 Floating-point numbers may be specified.  @xref{Floating point}.

 The program accepts the following options.  Also see @ref{Common options}.
diff --git a/src/seq.c b/src/seq.c
index acbe235..35dfc8b 100644
--- a/src/seq.c
+++ b/src/seq.c
@@ -87,6 +87,8 @@ Print numbers from FIRST to LAST, in steps of INCREMENT.\n\
 \n\
 If FIRST or INCREMENT is omitted, it defaults to 1.  That is, an\n\
 omitted INCREMENT defaults to 1 even when LAST is smaller than FIRST.\n\
+The sequence of numbers ends when the sum of the current number and\n\
+INCREMENT would become greater than LAST.\n\
 FIRST, INCREMENT, and LAST are interpreted as floating point values.\n\
 INCREMENT is usually positive if FIRST is smaller than LAST, and\n\
 INCREMENT is usually negative if FIRST is greater than LAST.\n\
-- 
1.8.3.1