projects
/
oweals
/
busybox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Trim help text a bit more
[oweals/busybox.git]
/
coreutils
/
wc.c
diff --git
a/coreutils/wc.c
b/coreutils/wc.c
index 78a5105da17661450c804760817307abdde77c5c..d0e5482ca500ca141f2abebd5db5ce6c06f46ada 100644
(file)
--- a/
coreutils/wc.c
+++ b/
coreutils/wc.c
@@
-36,16
+36,14
@@
* (adapted from example in gnu wc.c)
*
* echo hello > /tmp/testfile &&
* (adapted from example in gnu wc.c)
*
* echo hello > /tmp/testfile &&
- * (dd ibs=1k skip=1 count=0 &> /dev/null
; wc -c) < /tmp/testfile
+ * (dd ibs=1k skip=1 count=0 &> /dev/null; wc -c) < /tmp/testfile
*
* for which 'wc -c' should output '0'.
*/
*
* for which 'wc -c' should output '0'.
*/
-#include "
busybox
.h"
+#include "
libbb
.h"
-#ifdef CONFIG_LOCALE_SUPPORT
-#include <locale.h>
-#include <ctype.h>
+#if ENABLE_LOCALE_SUPPORT
#define isspace_given_isprint(c) isspace(c)
#else
#undef isspace
#define isspace_given_isprint(c) isspace(c)
#else
#undef isspace
@@
-55,10
+53,13
@@
#define isspace_given_isprint(c) ((c) == ' ')
#endif
#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"
#define COUNT_T unsigned
#define COUNT_FMT "u"
+#endif
enum {
WC_LINES = 0,
enum {
WC_LINES = 0,
@@
-67,11
+68,12
@@
enum {
WC_LENGTH = 3
};
WC_LENGTH = 3
};
-int wc_main(int argc, char **argv)
+int wc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int wc_main(int argc UNUSED_PARAM, char **argv)
{
FILE *fp;
const char *s, *arg;
{
FILE *fp;
const char *s, *arg;
- const char *start_fmt = "
%9"COUNT_FMT
;
+ const char *start_fmt = "
%9"COUNT_FMT + 1
;
const char *fname_fmt = " %s\n";
COUNT_T *pcounts;
COUNT_T counts[4];
const char *fname_fmt = " %s\n";
COUNT_T *pcounts;
COUNT_T counts[4];
@@
-80,11
+82,11
@@
int wc_main(int argc, char **argv)
unsigned u;
int num_files = 0;
int c;
unsigned u;
int num_files = 0;
int c;
-
char
status = EXIT_SUCCESS;
-
char
in_word;
-
char
print_type;
+
smallint
status = EXIT_SUCCESS;
+
smallint
in_word;
+
unsigned
print_type;
- print_type =
bb_getopt_ulflags(argc,
argv, "lwcL");
+ print_type =
getopt32(
argv, "lwcL");
if (print_type == 0) {
print_type = (1 << WC_LINES) | (1 << WC_WORDS) | (1 << WC_CHARS);
if (print_type == 0) {
print_type = (1 << WC_LINES) | (1 << WC_WORDS) | (1 << WC_CHARS);
@@
-104,7
+106,7
@@
int wc_main(int argc, char **argv)
while ((arg = *argv++) != 0) {
++num_files;
while ((arg = *argv++) != 0) {
++num_files;
- fp =
bb_wfopen_input
(arg);
+ fp =
fopen_or_warn_stdin
(arg);
if (!fp) {
status = EXIT_FAILURE;
continue;
if (!fp) {
status = EXIT_FAILURE;
continue;
@@
-115,6
+117,8
@@
int wc_main(int argc, char **argv)
in_word = 0;
do {
in_word = 0;
do {
+ /* Our -w doesn't match GNU wc exactly... oh well */
+
++counts[WC_CHARS];
c = getc(fp);
if (isprint(c)) {
++counts[WC_CHARS];
c = getc(fp);
if (isprint(c)) {
@@
-146,7
+150,7
@@
int wc_main(int argc, char **argv)
}
} else if (c == EOF) {
if (ferror(fp)) {
}
} else if (c == EOF) {
if (ferror(fp)) {
- bb_
perror_msg("%s",
arg);
+ bb_
simple_perror_msg(
arg);
status = EXIT_FAILURE;
}
--counts[WC_CHARS];
status = EXIT_FAILURE;
}
--counts[WC_CHARS];
@@
-167,7
+171,7
@@
int wc_main(int argc, char **argv)
}
totals[WC_LENGTH] -= counts[WC_LENGTH];
}
totals[WC_LENGTH] -= counts[WC_LENGTH];
-
bb_fclose_non
stdin(fp);
+
fclose_if_not_
stdin(fp);
OUTPUT:
/* coreutils wc tries hard to print pretty columns
OUTPUT:
/* coreutils wc tries hard to print pretty columns
@@
-177,12
+181,12
@@
int wc_main(int argc, char **argv)
u = 0;
do {
if (print_type & (1 << u)) {
u = 0;
do {
if (print_type & (1 << u)) {
-
bb_
printf(s, pcounts[u]);
+ printf(s, pcounts[u]);
s = " %9"COUNT_FMT; /* Ok... restore the leading space. */
}
totals[u] += pcounts[u];
} while (++u < 4);
s = " %9"COUNT_FMT; /* Ok... restore the leading space. */
}
totals[u] += pcounts[u];
} while (++u < 4);
-
bb_
printf(fname_fmt, arg);
+ printf(fname_fmt, arg);
}
/* If more than one file was processed, we want the totals. To save some
}
/* If more than one file was processed, we want the totals. To save some
@@
-197,5
+201,5
@@
int wc_main(int argc, char **argv)
goto OUTPUT;
}
goto OUTPUT;
}
-
bb_
fflush_stdout_and_exit(status);
+ fflush_stdout_and_exit(status);
}
}