tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Proposed modification to seq



aran%100acres.us@localhost writes:

> The seq command behaves a little differently than I expect.  I needed a comma
> separated list of integers, but seq gave me this:
>
>  $seq -s , 1 3
>  1,2,3,$
>
> Notice the extra comma and no trailing return.  The comma is troublesome for my

From reading the man page, the extra comma is a bug, and the lack of a
trailing return is correct.

> particular purpose.  It seems that the item separator (-s) is really an item
> terminator.  I was expecting this:
>
>  $seq -s , 1 3
>  1,2,3
>  $
>
> I'm sure there is some not-obvious-to-me reason for the current behavior.

It could just be a bug.  But the man page is inconsistent.

I suspect there is almost no use of -s.  But I wonder.

If this change makes seq with -s behave like GNU seq, and more closely
aligns with seq's own man page, that seems like a reasonable thing.

> However, I implemented what I expected and build a distribution without issue.
> The attached diff implements the proposed behavior.
>
> Aran

> Index: seq.1
> ===================================================================
> RCS file: /cvsroot/src/usr.bin/seq/seq.1,v
> retrieving revision 1.9
> diff -u -r1.9 seq.1
> --- seq.1	18 Aug 2016 22:55:28 -0000	1.9
> +++ seq.1	13 Dec 2018 17:35:48 -0000
> @@ -117,8 +117,7 @@
>  can contain character escape sequences in backslash notation as
>  defined in
>  .St -ansiC .
> -This option is useful when the default separator
> -does not contain a
> +The default is
>  .Cm \en .
>  .It Fl w
>  Equalize the widths of all numbers by padding with zeros as necessary.
> Index: seq.c
> ===================================================================
> RCS file: /cvsroot/src/usr.bin/seq/seq.c,v
> retrieving revision 1.10
> diff -u -r1.10 seq.c
> --- seq.c	29 Oct 2017 01:28:46 -0000	1.10
> +++ seq.c	13 Dec 2018 17:35:48 -0000
> @@ -132,7 +132,7 @@
>  		fprintf(stderr,
>  		    "usage: %s [-w] [-f format] [-s string] [-t string] [first [incr]] last\n",
>  		    getprogname());
> -		exit(1);
> +exit(1);

Why the whitespace change?

The rest seems ok, except I'm not sure what happens if the for loop
would not run the first time, but perhaps that can't happen.





Home | Main Index | Thread Index | Old Index