aboutsummaryrefslogtreecommitdiff
path: root/core/read.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/read.c')
-rw-r--r--core/read.c16
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;