From 2e683354304daa0714d40d4f7fa8cf23aaffe285 Mon Sep 17 00:00:00 2001 From: Justin Maggard Date: Thu, 10 Oct 2013 00:04:25 -0700 Subject: [PATCH] * Filter out hidden files and folders. --- scanner.c | 82 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 35 deletions(-) diff --git a/scanner.c b/scanner.c index 565e2e7..67d9617 100644 --- a/scanner.c +++ b/scanner.c @@ -594,85 +594,97 @@ sql_failed: return (ret != SQLITE_OK); } +static inline int +filter_hidden(scan_filter *d) +{ + return (d->d_name[0] != '.'); +} + static int filter_type(scan_filter *d) { - return ( (*d->d_name != '.') && - ((d->d_type == DT_DIR) || - (d->d_type == DT_LNK) || - (d->d_type == DT_UNKNOWN)) + return ( (d->d_type == DT_DIR) || + (d->d_type == DT_LNK) || + (d->d_type == DT_UNKNOWN) ); } static int filter_a(scan_filter *d) { - return ( filter_type(d) || - ((d->d_type == DT_REG) && - (is_audio(d->d_name) || - is_playlist(d->d_name)) - ) ); + return ( filter_hidden(d) && + (filter_type(d) || + ((d->d_type == DT_REG) && + (is_audio(d->d_name) || + is_playlist(d->d_name)))) + ); } static int filter_av(scan_filter *d) { - return ( filter_type(d) || - ((d->d_type == DT_REG) && - (is_audio(d->d_name) || - is_video(d->d_name) || - is_playlist(d->d_name))) + return ( filter_hidden(d) && + (filter_type(d) || + ((d->d_type == DT_REG) && + (is_audio(d->d_name) || + is_video(d->d_name) || + is_playlist(d->d_name)))) ); } static int filter_ap(scan_filter *d) { - return ( filter_type(d) || - ((d->d_type == DT_REG) && - (is_audio(d->d_name) || - is_image(d->d_name) || - is_playlist(d->d_name))) + return ( filter_hidden(d) && + (filter_type(d) || + ((d->d_type == DT_REG) && + (is_audio(d->d_name) || + is_image(d->d_name) || + is_playlist(d->d_name)))) ); } static int filter_v(scan_filter *d) { - return ( filter_type(d) || - (d->d_type == DT_REG && - is_video(d->d_name)) + return ( filter_hidden(d) && + (filter_type(d) || + (d->d_type == DT_REG && + is_video(d->d_name))) ); } static int filter_vp(scan_filter *d) { - return ( filter_type(d) || - ((d->d_type == DT_REG) && - (is_video(d->d_name) || - is_image(d->d_name))) + return ( filter_hidden(d) && + (filter_type(d) || + ((d->d_type == DT_REG) && + (is_video(d->d_name) || + is_image(d->d_name)))) ); } static int filter_p(scan_filter *d) { - return ( filter_type(d) || - (d->d_type == DT_REG && - is_image(d->d_name)) + return ( filter_hidden(d) && + (filter_type(d) || + (d->d_type == DT_REG && + is_image(d->d_name))) ); } static int filter_avp(scan_filter *d) { - return ( filter_type(d) || - ((d->d_type == DT_REG) && - (is_audio(d->d_name) || - is_image(d->d_name) || - is_video(d->d_name) || - is_playlist(d->d_name))) + return ( filter_hidden(d) && + (filter_type(d) || + ((d->d_type == DT_REG) && + (is_audio(d->d_name) || + is_image(d->d_name) || + is_video(d->d_name) || + is_playlist(d->d_name)))) ); }