Unidiff1 files changed, 7 insertions, 4 deletions
|
diff --git a/cache.c b/cache.c index aa97ae1..9f02cf5 100644 --- a/ cache.c+++ b/ cache.c |
|
@@ -83,3 +83,3 @@ static int print_slot(struct cache_slot *slot) |
83 | { |
83 | { |
84 | ssize_t i; |
84 | ssize_t i, j; |
85 | |
85 | |
@@ -89,6 +89,9 @@ static int print_slot(struct cache_slot *slot) |
89 | |
89 | |
90 | while((i = xread(slot->cache_fd, slot->buf, sizeof(slot->buf))) > 0) |
90 | do { |
91 | i = xwrite(STDOUT_FILENO, slot->buf, i); |
91 | i = j = xread(slot->cache_fd, slot->buf, sizeof(slot->buf)); |
| |
92 | if (i > 0) |
| |
93 | j = xwrite(STDOUT_FILENO, slot->buf, i); |
| |
94 | } while (i > 0 && j == i); |
92 | |
95 | |
93 | if (i < 0) |
96 | if (i < 0 || j != i) |
94 | return errno; |
97 | return errno; |
|