diff options
Diffstat (limited to 'core/read.c')
| -rw-r--r-- | core/read.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/core/read.c b/core/read.c index 017fd3c..d91b414 100644 --- a/core/read.c +++ b/core/read.c @@ -2,8 +2,8 @@ #include "../lib/arg/arg.h" #include "../lib/list/list.h" #include "../lib/sys/errno.h" - -#define BUF_SIZE 1024 +#include "../lib/sys/types.h" +#include "../lib/tctl/tctl.h" void mode_all(int fd); void mode_singleline(int fd); @@ -12,9 +12,9 @@ enum Modes { MODE_ALL, MODE_SINGLELINE, MODE_SIZE -} mode; +} mode = MODE_ALL; -char buf[BUF_SIZE] = ""; +char buf[BUFSIZ] = ""; list_t *files; void(*mode_funcs[MODE_SIZE])(int fd) = { mode_all, @@ -42,10 +42,10 @@ void set_singleline_mode() void mode_all(int fd) { u64 rs; - while ((rs = read(fd, buf, BUF_SIZE - 1))) { - buf[rs] = 0; - wstd(buf); + while ((rs = read(fd, buf, BUFSIZ))) { + write(STDOUT_FD, buf, rs); } + flush(STDOUT_FD); } @@ -55,7 +55,7 @@ void mode_singleline(int fd) u64 has_newline_char = 0; char *p; while (!has_newline_char) { - rs = read(fd, buf, BUF_SIZE - 1); + rs = read(fd, buf, BUFSIZ - 1); for (p = buf; p < buf + rs; ++p) { if (*p == '\n') { has_newline_char = 1; |