From dda18efbf37e2def7490bb7865d41b1560d8412c Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Tue, 5 May 2015 16:41:36 +0000 Subject: - add s6-seq - rc for 2.0.5.0 --- doc/index.html | 3 +- doc/s6-seq.html | 66 +++++++++++++++++++++++++++++++++++++++++ doc/upgrade.html | 3 +- package/deps.mak | 3 ++ package/info | 2 +- package/modes | 1 + package/targets.mak | 1 + src/skaembutils/deps-exe/s6-seq | 1 + src/skaembutils/s6-seq.c | 61 +++++++++++++++++++++++++++++++++++++ 9 files changed, 138 insertions(+), 3 deletions(-) create mode 100644 doc/s6-seq.html create mode 100644 src/skaembutils/deps-exe/s6-seq create mode 100644 src/skaembutils/s6-seq.c diff --git a/doc/index.html b/doc/index.html index 5f599eb..b2f40fd 100644 --- a/doc/index.html +++ b/doc/index.html @@ -76,7 +76,7 @@ library. @@ -135,6 +135,7 @@ the previous versions of s6-portable-utils and the current one.
  • The s6-quote program
  • The s6-rename program
  • The s6-rmrf program
  • +
  • The s6-seq program
  • The s6-sleep program
  • The s6-sort program
  • The s6-sync program
  • diff --git a/doc/s6-seq.html b/doc/s6-seq.html new file mode 100644 index 0000000..68227ad --- /dev/null +++ b/doc/s6-seq.html @@ -0,0 +1,66 @@ + + + + + s6-portable-utils: the s6-seq program + + + + + + +

    +s6-portable-utils
    +Software
    +skarnet.org +

    + +

    The s6-seq program

    + +

    + s6-seq prints a sequence of numbers. +

    + +

    Interface

    + +
    +     s6-seq [ -w ] [ -s separator ] limits
    +
    + + + +

    Options

    + + + +

    Notes

    + +

    + s6-seq is similar to the GNU seq program. However, it +does not handle negative numbers, floating point numbers or +printf-style formatting. +

    + + + diff --git a/doc/upgrade.html b/doc/upgrade.html index 403476d..c75ef87 100644 --- a/doc/upgrade.html +++ b/doc/upgrade.html @@ -17,10 +17,11 @@

    What has changed in s6-portable-utils

    -

    in 2.0.4.1

    +

    in 2.0.5.0

    in 2.0.4.0

    diff --git a/package/deps.mak b/package/deps.mak index d5de160..b72f18d 100644 --- a/package/deps.mak +++ b/package/deps.mak @@ -32,6 +32,7 @@ src/skaembutils/s6-quote-filter.o src/skaembutils/s6-quote-filter.lo: src/skaemb src/skaembutils/s6-quote.o src/skaembutils/s6-quote.lo: src/skaembutils/s6-quote.c src/skaembutils/s6-rename.o src/skaembutils/s6-rename.lo: src/skaembutils/s6-rename.c src/skaembutils/s6-rmrf.o src/skaembutils/s6-rmrf.lo: src/skaembutils/s6-rmrf.c +src/skaembutils/s6-seq.o src/skaembutils/s6-seq.lo: src/skaembutils/s6-seq.c src/skaembutils/s6-sleep.o src/skaembutils/s6-sleep.lo: src/skaembutils/s6-sleep.c src/skaembutils/s6-sort.o src/skaembutils/s6-sort.lo: src/skaembutils/s6-sort.c src/skaembutils/s6-sync.o src/skaembutils/s6-sync.lo: src/skaembutils/s6-sync.c @@ -105,6 +106,8 @@ s6-rename: private EXTRA_LIBS := s6-rename: src/skaembutils/s6-rename.o -lskarnet s6-rmrf: private EXTRA_LIBS := s6-rmrf: src/skaembutils/s6-rmrf.o -lskarnet +s6-seq: private EXTRA_LIBS := +s6-seq: src/skaembutils/s6-seq.o -lskarnet s6-sleep: private EXTRA_LIBS := ${TAINNOW_LIB} s6-sleep: src/skaembutils/s6-sleep.o -lskarnet s6-sort: private EXTRA_LIBS := diff --git a/package/info b/package/info index c780675..60e67c4 100644 --- a/package/info +++ b/package/info @@ -1,4 +1,4 @@ package=s6-portable-utils -version=2.0.4.1 +version=2.0.5.0 category=admin package_macro_name=S6_PORTABLE_UTILS diff --git a/package/modes b/package/modes index 325eb60..a14e4bc 100644 --- a/package/modes +++ b/package/modes @@ -28,6 +28,7 @@ s6-quote 0755 s6-quote-filter 0755 s6-rename 0755 s6-rmrf 0755 +s6-seq 0755 s6-sleep 0755 s6-sort 0755 s6-sync 0755 diff --git a/package/targets.mak b/package/targets.mak index f7b3869..c562da8 100644 --- a/package/targets.mak +++ b/package/targets.mak @@ -29,6 +29,7 @@ s6-quote \ s6-quote-filter \ s6-rename \ s6-rmrf \ +s6-seq \ s6-sleep \ s6-sort \ s6-sync \ diff --git a/src/skaembutils/deps-exe/s6-seq b/src/skaembutils/deps-exe/s6-seq new file mode 100644 index 0000000..e7187fe --- /dev/null +++ b/src/skaembutils/deps-exe/s6-seq @@ -0,0 +1 @@ +-lskarnet diff --git a/src/skaembutils/s6-seq.c b/src/skaembutils/s6-seq.c new file mode 100644 index 0000000..bad4afd --- /dev/null +++ b/src/skaembutils/s6-seq.c @@ -0,0 +1,61 @@ +/* ISC license. */ + +#include +#include +#include +#include + +#define USAGE "s6-seq [ -w ] [ -s separator ] limits" +#define dieusage() strerr_dieusage(100, USAGE) + +int main (int argc, char const *const *argv) +{ + char const *sep = "\n" ; + unsigned int fixed = 0, seplen = 1, i = 1, increment = 1 ; + unsigned int last ; + char fmt[UINT_FMT] ; + PROG = "s6-seq" ; + { + subgetopt_t l = SUBGETOPT_ZERO ; + for (;;) + { + register int opt = subgetopt_r(argc, argv, "ws:", &l) ; + if (opt == -1) break ; + switch (opt) + { + case 'w': fixed = 1 ; break ; + case 's': sep = l.arg ; seplen = str_len(sep) ; break ; + default : dieusage() ; + } + } + argc -= l.ind ; argv += l.ind ; + } + switch (argc) + { + case 1 : + if (!uint0_scan(argv[0], &last)) dieusage() ; + break ; + case 2 : + if (!uint0_scan(argv[0], &i) + || !uint0_scan(argv[1], &last)) dieusage() ; + break ; + case 3 : + if (!uint0_scan(argv[0], &i) + || !uint0_scan(argv[1], &increment) + || !uint0_scan(argv[2], &last)) dieusage() ; + break ; + default : dieusage() ; + } + if (!seplen) seplen = 1 ; + if (fixed) fixed = uint_fmt(0, i + increment * ((last - i) / increment)) ; + for (; i <= last ; i += increment) + { + if (buffer_put(buffer_1, fmt, fixed ? (uint0_fmt(fmt, i, fixed), fixed) : uint_fmt(fmt, i)) < 0) goto err ; + if (buffer_put(buffer_1, sep, seplen) < 0) goto err ; + } + if (!buffer_flush(buffer_1)) goto err ; + return 0 ; + +err: + strerr_diefu1sys(111, "write to stdout") ; +} -- cgit v1.2.3