diff options
author | Denis Vlasenko | 2006-09-29 23:41:59 +0000 |
---|---|---|
committer | Denis Vlasenko | 2006-09-29 23:41:59 +0000 |
commit | 70210168fcb1fb9bdbcd6fe92509cd9b1ef46eb9 (patch) | |
tree | 6a277dce1252ee2625563c718fdc60b4c3a5a91f /coreutils/wc.c | |
parent | 3ed001ff2631ad6911096148f47a2719a5b6d4f4 (diff) | |
download | busybox-70210168fcb1fb9bdbcd6fe92509cd9b1ef46eb9.zip busybox-70210168fcb1fb9bdbcd6fe92509cd9b1ef46eb9.tar.gz |
wc: optionally support very large files in wc
Diffstat (limited to 'coreutils/wc.c')
-rw-r--r-- | coreutils/wc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/coreutils/wc.c b/coreutils/wc.c index 78a5105..6ddac4d 100644 --- a/coreutils/wc.c +++ b/coreutils/wc.c @@ -55,10 +55,13 @@ #define isspace_given_isprint(c) ((c) == ' ') #endif -//#define COUNT_T unsigned long long -//#define COUNT_FMT "llu" +#if ENABLE_FEATURE_WC_LARGE +#define COUNT_T unsigned long long +#define COUNT_FMT "llu" +#else #define COUNT_T unsigned #define COUNT_FMT "u" +#endif enum { WC_LINES = 0, @@ -82,7 +85,7 @@ int wc_main(int argc, char **argv) int c; char status = EXIT_SUCCESS; char in_word; - char print_type; + unsigned print_type; print_type = bb_getopt_ulflags(argc, argv, "lwcL"); @@ -115,6 +118,8 @@ int wc_main(int argc, char **argv) in_word = 0; do { + /* Our -w doesn't match GNU wc exactly... oh well */ + ++counts[WC_CHARS]; c = getc(fp); if (isprint(c)) { |