summaryrefslogtreecommitdiff
path: root/coreutils/seq.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils/seq.c')
-rw-r--r--coreutils/seq.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/coreutils/seq.c b/coreutils/seq.c
index cf856bf..4b853c6 100644
--- a/coreutils/seq.c
+++ b/coreutils/seq.c
@@ -15,11 +15,13 @@
int seq_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int seq_main(int argc, char **argv)
{
+ enum {
+ OPT_w = (1 << 0),
+ OPT_s = (1 << 1),
+ };
double last, increment, i;
- enum { OPT_w = 1, OPT_s };
- const char *sep = "\n";
- bool is_consecutive = 0;
- unsigned opt = getopt32(argv, "+ws:", &sep);
+ const char *sep, *opt_s = "\n";
+ unsigned opt = getopt32(argv, "+ws:", &opt_s);
unsigned width = 0;
argc -= optind;
@@ -40,11 +42,10 @@ int seq_main(int argc, char **argv)
width = MAX(strlen(*argv), strlen(argv[argc-1]));
/* You should note that this is pos-5.0.91 semantics, -- FK. */
+ sep = "";
while ((increment > 0 && i <= last) || (increment < 0 && i >= last)) {
- if (is_consecutive++) {
- printf("%s", sep);
- }
- printf("%0*g", width, i);
+ printf("%s%0*g", sep, width, i);
+ sep = opt_s;
i += increment;
}
bb_putchar('\n');