1 /* vi: set sw=4 ts=4: */
3 * seq implementation for busybox
5 * Copyright (C) 2004, Glenn McGrath
7 * Licensed under the GPL v2, see the file LICENSE in this tarball.
12 /* This is a NOFORK applet. Be very careful! */
15 int seq_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
16 int seq_main(int argc, char **argv)
18 double last, increment, i;
19 enum { OPT_w = 1, OPT_s };
20 const char *sep = "\n";
21 bool is_consecutive = 0;
22 unsigned opt = getopt32(argv, "+ws:", &sep);
30 increment = atof(argv[1]);
34 last = atof(argv[argc-1]);
39 if (opt & OPT_w) /* Pad to length of start or last */
40 width = MAX(strlen(*argv), strlen(argv[argc-1]));
42 /* You should note that this is pos-5.0.91 semantics, -- FK. */
43 while ((increment > 0 && i <= last) || (increment < 0 && i >= last)) {
44 if (is_consecutive++) {
47 printf("%0*g", width, i);
51 return fflush(stdout);