wc: optionally support very large files in wc

This commit is contained in:
Denis Vlasenko 2006-09-29 23:41:59 +00:00
parent 3ed001ff26
commit 70210168fc
2 changed files with 15 additions and 3 deletions

View File

@ -704,6 +704,13 @@ config CONFIG_WC
wc is used to print the number of bytes, words, and lines,
in specified files.
config CONFIG_FEATURE_WC_LARGE
bool "Support very large files in wc"
default n
depends on CONFIG_WC
help
Use "unsigned long long" in wc for count variables
config CONFIG_WHO
bool "who"
default n

View File

@ -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)) {