/* wc.c - Word count * * Copyright 2011 Rob Landley * * See http://opengroup.org/onlinepubs/9699919799/utilities/wc.html USE_WC(NEWTOY(wc, "mcwl", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE)) config WC bool "wc" default y help usage: wc -lwcm [FILE...] Count lines, words, and characters in input. -l show lines -w show words -c show bytes -m show characters By default outputs lines, words, bytes, and filename for each argument (or from stdin if none). Displays only either bytes or characters. */ #define FOR_wc #include "toys.h" GLOBALS( unsigned long totals[4]; ) static void show_lengths(unsigned long *lengths, char *name) { int i, space, first = 1; // POSIX says there should never be leading spaces, but accepts that // traditional implementations use 7 spaces, unless only one file // is being counted, when there should be no leading spaces. space = (toys.optc != 1) ? 7 : 0; for (i = 0; i<4; i++) { if (toys.optflags&(1<1) show_lengths(TT.totals, "total"); }