diff options
-rw-r--r-- | main.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/main.c b/main.c index 17d0c7c..1f9876e 100644 --- a/main.c +++ b/main.c @@ -16,18 +16,9 @@ int read_all(FILE *f, Str *buf, Arena *a) { if (!f) return -1; - if (isatty(fileno(f))) { - buf->s = a->beg; - buf->n = fread(a->beg, 1, (uintptr_t)(a->end - a->beg) - 1, f); - a->beg += buf->n; - } else { - fseek(f, 0, SEEK_END); - long ofs = ftell(f); - fseek(f, 0, SEEK_SET); - buf->n = ofs; - buf->s = new_arr(a, char, buf->n); - if ((isize)fread(buf->s, 1, buf->n, f) != buf->n) return -1; - } + buf->s = a->beg; + buf->n = fread(a->beg, 1, (uintptr_t)(a->end - a->beg) - 1, f); + a->beg += buf->n; return ferror(f) ? -1 : 0; } |