| -rw-r--r-- | cache.c | 11 |
1 files changed, 4 insertions, 7 deletions
@@ -81,19 +81,16 @@ static int close_slot(struct cache_slot *slot) /* Print the content of the active cache slot (but skip the key). */ static int print_slot(struct cache_slot *slot) { - ssize_t i, j; + ssize_t i; i = lseek(slot->cache_fd, slot->keylen + 1, SEEK_SET); if (i != slot->keylen + 1) return errno; - do { - i = j = xread(slot->cache_fd, slot->buf, sizeof(slot->buf)); - if (i > 0) - j = xwrite(STDOUT_FILENO, slot->buf, i); - } while (i > 0 && j == i); + while((i = xread(slot->cache_fd, slot->buf, sizeof(slot->buf))) > 0) + i = xwrite(STDOUT_FILENO, slot->buf, i); - if (i < 0 || j != i) + if (i < 0) return errno; else return 0; |