diff options
Diffstat (limited to 'thumbnail')
| -rw-r--r-- | thumbnail/main.c | 25 |
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) |
