summaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
authorKacper Gutowski <klg@mmax.one.pl>2018-07-05 03:39:27 +0200
committerBert Münnich <ber.t@posteo.de>2018-07-30 10:28:35 +0200
commite6c9218319b82b875ffb0c15dd88f8f6e77c50e2 (patch)
treef510779fd20d4d7a1affbd9256e8faba46a93da2 /util.c
parent1613b42411788810d73252ac86952b3e66c866ba (diff)
downloadnsxiv-e6c9218319b82b875ffb0c15dd88f8f6e77c50e2.tar.zst
Don't skip dot files when cleaning cache
Diffstat (limited to 'util.c')
-rw-r--r--util.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/util.c b/util.c
index 8f41d78..b956fd7 100644
--- a/util.c
+++ b/util.c
@@ -134,7 +134,7 @@ int r_closedir(r_dir_t *rdir)
return ret;
}
-char* r_readdir(r_dir_t *rdir)
+char* r_readdir(r_dir_t *rdir, bool skip_dotfiles)
{
size_t len;
char *filename;
@@ -143,8 +143,14 @@ char* r_readdir(r_dir_t *rdir)
while (true) {
if (rdir->dir != NULL && (dentry = readdir(rdir->dir)) != NULL) {
- if (dentry->d_name[0] == '.')
- continue;
+ if (dentry->d_name[0] == '.') {
+ if (skip_dotfiles)
+ continue;
+ if (dentry->d_name[1] == '\0')
+ continue;
+ if (dentry->d_name[1] == '.' && dentry->d_name[2] == '\0')
+ continue;
+ }
len = strlen(rdir->name) + strlen(dentry->d_name) + 2;
filename = (char*) emalloc(len);