diff options
Diffstat (limited to 'src/blind-decompress.c')
| -rw-r--r-- | src/blind-decompress.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/blind-decompress.c b/src/blind-decompress.c index fd436f6..602fdac 100644 --- a/src/blind-decompress.c +++ b/src/blind-decompress.c @@ -3,7 +3,6 @@ #include "util.h" #include <string.h> -#include <unistd.h> USAGE("") @@ -12,35 +11,34 @@ main(int argc, char *argv[]) { struct stream stream; char *buf; - size_t n, m, fptr, sptr, same = 0, diff = 0; + size_t m, fptr, sptr, same = 0, diff = 0; UNOFLAGS(argc); eopen_stream(&stream, NULL); + echeck_dimensions(&stream, WIDTH | HEIGHT, NULL); fprint_stream_head(stdout, &stream); efflush(stdout, "<stdout>"); - echeck_frame_size(stream.width, stream.height, stream.pixel_size, 0, "<stdin>"); - n = stream.width * stream.height * stream.pixel_size; - buf = ecalloc(1, n); + buf = ecalloc(1, stream.frame_size); fptr = 0; do { sptr = 0; again: while (same) { - m = MIN(same, n - fptr); + m = MIN(same, stream.frame_size - fptr); ewriteall(STDOUT_FILENO, buf + fptr, m, "<stdout>"); - fptr = (fptr + m) % n; + fptr = (fptr + m) % stream.frame_size; same -= m; } while (diff && sptr < stream.ptr) { - m = MIN(diff, n - fptr); + m = MIN(diff, stream.frame_size - fptr); m = MIN(m, stream.ptr - sptr); memcpy(buf + fptr, stream.buf + sptr, m); ewriteall(STDOUT_FILENO, buf + fptr, m, "<stdout>"); - fptr = (fptr + m) % n; + fptr = (fptr + m) % stream.frame_size; diff -= m; sptr += m; } |
