aboutsummaryrefslogtreecommitdiff
path: root/thumbnail
diff options
context:
space:
mode:
Diffstat (limited to 'thumbnail')
-rw-r--r--thumbnail/main.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/thumbnail/main.c b/thumbnail/main.c
index bbdc7f0..4629ff8 100644
--- a/thumbnail/main.c
+++ b/thumbnail/main.c
@@ -567,16 +567,33 @@ static int generate_existing(const char *const user,
.force = force
};
- printf("Scanning existing files...\n");
+ int ret = -1;
+ enum cftw_state state;
+ struct cftw *const c = cftw(user, do_generate, &a);
- if (cftw(user, do_generate, &a))
+ if (!c)
{
fprintf(stderr, "%s: cftw failed\n", __func__);
- return -1;
+ goto end;
+ }
+
+ printf("Scanning existing files...\n");
+
+ while ((state = cftw_step(c)) == CFTW_AGAIN)
+ ;
+
+ if (state)
+ {
+ fprintf(stderr, "%s: cftw_step failed\n", __func__);
+ goto end;
}
printf("Finished scanning\n");
- return 0;
+ cftw_free(c);
+ ret = 0;
+
+end:
+ return ret;
}
static void handle_signal(const int signum)