seq: shrink by 10 bytes
authorDenis Vlasenko <vda.linux@googlemail.com>
Wed, 12 Nov 2008 21:37:19 +0000 (21:37 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Wed, 12 Nov 2008 21:37:19 +0000 (21:37 -0000)
coreutils/seq.c

index cf856bf0416dcb0d61e5e0f93f9bf235591c0443..4b853c698643b77476b99e8767b3fa6234103ce3 100644 (file)
 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');