From dac6950d9e556d5521ad7913d27a6cf83e2a90a1 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 9 Apr 2017 23:46:17 +0200 Subject: Clean up MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/blind-repeat.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) (limited to 'src/blind-repeat.c') diff --git a/src/blind-repeat.c b/src/blind-repeat.c index 29089c6..937536b 100644 --- a/src/blind-repeat.c +++ b/src/blind-repeat.c @@ -3,7 +3,6 @@ #include "util.h" #include -#include #include #include #include @@ -18,9 +17,7 @@ repeat_regular_file(char *file, size_t count, int inf) size_t ptr; ssize_t r; - stream.file = file; - stream.fd = eopen(stream.file, O_RDONLY); - einit_stream(&stream); + eopen_stream(&stream, file); if (count > SIZE_MAX / stream.frames) eprintf("%s: video is too long\n", stream.file); stream.frames *= count; @@ -28,14 +25,9 @@ repeat_regular_file(char *file, size_t count, int inf) efflush(stdout, ""); while (inf || count--) { -#if defined(POSIX_FADV_SEQUENTIAL) - posix_fadvise(stream.fd, stream.headlen, 0, POSIX_FADV_SEQUENTIAL); -#endif + fadvise_sequential(stream.fd, stream.headlen, 0); for (ptr = stream.headlen;; ptr += (size_t)r) { - r = pread(stream.fd, buf, sizeof(buf), ptr); - if (r < 0) - eprintf("pread %s:", stream.file); - if (r == 0) + if (!(r = epread(stream.fd, buf, sizeof(buf), ptr, stream.file))) break; if (writeall(STDOUT_FILENO, buf, (size_t)r)) { if (!inf || errno != EPIPE) @@ -56,9 +48,7 @@ repeat_stdin(size_t count, int inf) size_t ptr, size; ssize_t r; - stream.file = ""; - stream.fd = STDIN_FILENO; - einit_stream(&stream); + eopen_stream(&stream, NULL); if (count > SIZE_MAX / stream.frames) eprintf("%s: video is too long\n", stream.file); stream.frames *= count; @@ -66,17 +56,14 @@ repeat_stdin(size_t count, int inf) efflush(stdout, ""); ptr = stream.ptr; - size = ptr < BUFSIZ ? BUFSIZ : ptr; + size = MAX(ptr, BUFSIZ); buf = emalloc(size); memcpy(buf, stream.buf, ptr); for (;;) { if (ptr == size) buf = erealloc(buf, size <<= 1); - r = read(STDIN_FILENO, buf + ptr, size - ptr); - if (r < 0) - eprintf("read :"); - if (r == 0) + if (!(r = eread(STDIN_FILENO, buf + ptr, size - ptr, ""))) break; ptr += (size_t)r; } -- cgit v1.2.3-70-g09d2