diff options
author | Rob Landley <rob@landley.net> | 2012-08-25 14:25:22 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2012-08-25 14:25:22 -0500 |
commit | 3a9241add947cb6d24b5de7a8927517426a78795 (patch) | |
tree | d122ab6570439cd6b17c7d73ed8d4e085e0b8a95 /toys/other/count.c | |
parent | 689f095bc976417bf50810fe59a3b3ac32b21105 (diff) | |
download | toybox-3a9241add947cb6d24b5de7a8927517426a78795.tar.gz |
Move commands into "posix", "lsb", and "other" menus/directories.
Diffstat (limited to 'toys/other/count.c')
-rw-r--r-- | toys/other/count.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/toys/other/count.c b/toys/other/count.c new file mode 100644 index 00000000..0ec3919d --- /dev/null +++ b/toys/other/count.c @@ -0,0 +1,36 @@ +/* vi: set sw=4 ts=4: + * + * count.c - Progress indicator from stdin to stdout + * + * Copyright 2002 Rob Landley <rob@landley.net> + * + * Not in SUSv3. + +USE_COUNT(NEWTOY(count, NULL, TOYFLAG_USR|TOYFLAG_BIN)) + +config COUNT + bool "count" + default y + help + usage: count + + Copy stdin to stdout, displaying simple progress indicator to stderr. +*/ + +#include "toys.h" + +void count_main(void) +{ + uint64_t size = 0; + int len; + char buf[32]; + + for (;;) { + len = xread(0, toybuf, sizeof(toybuf)); + if (!len) break; + size += len; + xwrite(1, toybuf, len); + xwrite(2, buf, sprintf(buf, "%"PRIu64" bytes\r", size)); + } + xwrite(2, "\n", 1); +} |