fix a regression introduced in #55
diff --git a/src/main.c b/src/main.c
index 09637bc..712c510 100644
--- a/src/main.c
+++ b/src/main.c
@@ -150,6 +150,9 @@ static int process(FILE * input_des, FILE * output_des, int mode, int block_size
return 1;
}
+ // Reset errno after the isatty() call.
+ errno = 0;
+
u8 byteswap_buf[4];
switch (mode) {
@@ -214,6 +217,9 @@ static int process(FILE * input_des, FILE * output_des, int mode, int block_size
read_count = xread(buffer, 1, block_size, input_des);
bytes_read += read_count;
+ if(read_count == 0)
+ break;
+
s32 new_size = bz3_encode_block(state, buffer, read_count);
if (new_size == -1) {
fprintf(stderr, "Failed to encode a block: %s\n", bz3_strerror(state));
