wc: fix swapped -c and -m
authorDenys Vlasenko <vda.linux@googlemail.com>
Sat, 22 Jan 2011 16:57:01 +0000 (17:57 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sat, 22 Jan 2011 16:57:01 +0000 (17:57 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
coreutils/wc.c

index fe3f274..6e22c66 100644 (file)
  * column order in "wc -cmlwL" output:
  */
 enum {
-       WC_LINES    = 0,
-       WC_WORDS    = 1,
-       WC_UNICHARS = 2,
-       WC_CHARS    = 3,
-       WC_LENGTH   = 4,
+       WC_LINES    = 0, /* -l */
+       WC_WORDS    = 1, /* -w */
+       WC_UNICHARS = 2, /* -m */
+       WC_BYTES    = 3, /* -c */
+       WC_LENGTH   = 4, /* -L */
        NUM_WCS     = 5,
 };
 
@@ -104,10 +104,10 @@ int wc_main(int argc UNUSED_PARAM, char **argv)
 
        init_unicode();
 
-       print_type = getopt32(argv, "lwcmL");
+       print_type = getopt32(argv, "lwmcL");
 
        if (print_type == 0) {
-               print_type = (1 << WC_LINES) | (1 << WC_WORDS) | (1 << WC_CHARS);
+               print_type = (1 << WC_LINES) | (1 << WC_WORDS) | (1 << WC_BYTES);
        }
 
        argv += optind;
@@ -157,7 +157,7 @@ int wc_main(int argc UNUSED_PARAM, char **argv)
                        }
 
                        /* Cater for -c and -m */
-                       ++counts[WC_CHARS];
+                       ++counts[WC_BYTES];
                        if (unicode_status != UNICODE_ON /* every byte is a new char */
                         || (c & 0xc0) != 0x80 /* it isn't a 2nd+ byte of a Unicode char */
                        ) {