summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Carbonneaux2021-11-20 22:11:18 +0100
committerQuentin Carbonneaux2021-11-20 22:11:18 +0100
commit4449eb01936356d030342aedc55f1de3c9232f0b (patch)
tree54e76646b515f6fd26a418877cf80c760e6db853
parentfdf54c274cb0401e95399191133c2816e8f03ace (diff)
more style nits
-rw-r--r--sdar/arch.c36
-rw-r--r--sdar/main.c4
2 files changed, 24 insertions, 16 deletions
diff --git a/sdar/arch.c b/sdar/arch.c
index 8b8ae71..14160ef 100644
--- a/sdar/arch.c
+++ b/sdar/arch.c
@@ -31,12 +31,16 @@ walkseg(Arch *a, int fn(Arch *, uchar[Segidsz], void *), void *arg)
int err, fd;
DIR *dir;
- if ((fd = openat(a->fd, "seg", O_RDONLY)) == -1)
+ fd = openat(a->fd, "seg", O_RDONLY);
+ if (fd == -1)
return 1;
- if ((dir = fdopendir(fd)) == 0) {
+
+ dir = fdopendir(fd);
+ if (!dir) {
close(fd);
return 1;
}
+
err = 0;
while (errno = 0, (de = readdir(dir))) {
if (strcmp(de->d_name, ".") == 0
@@ -51,8 +55,10 @@ walkseg(Arch *a, int fn(Arch *, uchar[Segidsz], void *), void *arg)
if (err)
break;
}
+
if (!err && errno)
err = 1;
+
closedir(dir);
return err;
}
@@ -89,7 +95,7 @@ walkblocks(FILE *f, blockcb *fn, void *arg)
static uchar scratch[sizeof plain];
uchar buf[Magicsz + Keysz];
uchar *it, *end, *segkey;
- vlong ni, sz, idx, nleft;
+ vlong idx, blk, sz, rd;
Segmeta meta;
char *e;
Block b = {.off = 0};
@@ -99,9 +105,10 @@ walkblocks(FILE *f, blockcb *fn, void *arg)
logs("E invalid header");
return 1;
}
+
segkey = buf + Magicsz;
- idx = -1;
- if ((e = cread(f, segkey, idx, Segmetasz))) {
+ e = cread(f, segkey, -1, Segmetasz);
+ if (e) {
logs("E cannot read metadata (%s)", e);
return 1;
}
@@ -109,19 +116,20 @@ walkblocks(FILE *f, blockcb *fn, void *arg)
if (fseek(f, meta.dlen, SEEK_CUR))
return 1;
- nleft = meta.nitem;
- while (nleft > 0) {
- ni = min(nleft, Maxblk / Segitemsz);
- nleft -= ni;
- sz = ni * Segitemsz;
- idx--;
- if (cread(f, segkey, idx, sz)) {
+
+ idx = -1;
+ sz = meta.nitem * Segitemsz;
+ blk = (Maxblk / Segitemsz) * Segitemsz;
+ for (; sz > 0; sz -= rd) {
+ rd = min(sz, blk);
+ e = cread(f, segkey, --idx, rd);
+ if (e) {
logs("E cannot read items (%s)", e);
return 1;
}
- memcpy(scratch, plain, Plnpad + sz);
+ memcpy(scratch, plain, Plnpad+rd);
it = scratch + Plnpad;
- end = it + sz;
+ end = it + rd;
for (; it != end; it += Segitemsz) {
decitem(it, &b);
if (fn(&b, it, segkey, arg))
diff --git a/sdar/main.c b/sdar/main.c
index 7d5226c..83da93e 100644
--- a/sdar/main.c
+++ b/sdar/main.c
@@ -379,7 +379,7 @@ cmd_add(int argc, char *argv[])
}
tot = 0;
- while ((sz = fread(iobuf, 1, sizeof iobuf, stdin)) > 0) {
+ while ((sz = fread(iobuf, 1, sizeof iobuf, stdin))) {
if (stashadd(&a, iobuf, sz))
goto writefail;
tot += sz;
@@ -515,7 +515,7 @@ cmd_id(int argc, char *argv[])
if (flagb)
return idbatch(&w);
- while ((sz = fread(iobuf, 1, sizeof iobuf, stdin)) > 0)
+ while ((sz = fread(iobuf, 1, sizeof iobuf, stdin)))
if (writer(&w, iobuf, sz))
return 1;
if (writerdone(&w, &a))