According to POSIX, wc should by default print the number of bytes and not the number of chars --- wc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/wc.c b/wc.c index 0b196d8..a1d89d7 100644 --- a/wc.c +++ b/wc.c @@ -32,7 +32,7 @@ wc(FILE *fp, const char *str) size_t nc = 0, nl = 0, nw = 0; while ((rlen = efgetrune(&c, fp, str))) { - nc += (cmode == 'c') ? rlen : + nc += (cmode == 'c' || cmode == 0) ? rlen : (c != Runeerror) ? 1 : 0; if (c == '\n') nl++; -- 1.7.10.4