aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--cache.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/cache.c b/cache.c
index 9f02cf5..aa97ae1 100644
--- a/cache.c
+++ b/cache.c
@@ -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;