All, 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 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. However, I implemented what I expected and build a distribution without issue. The attached diff implements the proposed behavior. Aran
? .gdbinit ? seq 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 @@ -85,7 +85,7 @@ struct lconv *locale; char *fmt = NULL; const char *sep = "\n"; - const char *term = NULL; + const char *term = "\n"; char pad = ZERO; /* Determine the locale's decimal point. */ @@ -132,7 +132,7 @@ fprintf(stderr, "usage: %s [-w] [-f format] [-s string] [-t string] [first [incr]] last\n", getprogname()); - exit(1); +exit(1); } last = e_atof(argv[argc - 1]); @@ -171,14 +171,16 @@ fmt = generate_format(first, incr, last, equalize, pad); if (incr > 0) { - for (; first <= last; first += incr) { - printf(fmt, first); + printf(fmt, first); + for (first += incr; first <= last; first += incr) { fputs(sep, stdout); + printf(fmt, first); } } else { - for (; first >= last; first += incr) { - printf(fmt, first); + printf(fmt, first); + for (first += incr; first >= last; first += incr) { fputs(sep, stdout); + printf(fmt, first); } } if (term != NULL)
Attachment:
pgpJsNZocom9X.pgp
Description: PGP signature