Krolyxon
Commit e6c9218

Branches

Refs →

nsxive6c9218

Don't skip dot files when cleaning cache

Author
Kacper Gutowski
Date
2018-07-05 03:39 +0200
Committer
Bert Münnich · 2018-07-30 10:28 +0200
Parent
1613b42
Commit
e6c9218319b82b875ffb0c15dd88f8f6e77c50e2

+12 −6

4 files changed

  1. M main.c +1 −1
  2. M sxiv.h +1 −1
  3. M thumbs.c +1 −1
  4. M util.c +9 −3
M main.c View
@@ -889,7 +889,7 @@ int main(int argc, char **argv)
889889 continue;
890890 }
891891 start = fileidx;
892− while ((filename = r_readdir(&dir)) != NULL) {
892+ while ((filename = r_readdir(&dir, true)) != NULL) {
893893 check_add_file(filename, false);
894894 free((void*) filename);
895895 }
M sxiv.h View
@@ -364,7 +364,7 @@ void error(int, int, const char*, ...);
364364 void size_readable(float*, const char**);
365365 int r_opendir(r_dir_t*, const char*, bool);
366366 int r_closedir(r_dir_t*);
367−char* r_readdir(r_dir_t*);
367+char* r_readdir(r_dir_t*, bool);
368368 int r_mkdir(char*);
369369
370370
M thumbs.c View
@@ -131,7 +131,7 @@ void tns_clean_cache(tns_t *tns)
131131
132132 dirlen = strlen(cache_dir);
133133
134− while ((cfile = r_readdir(&dir)) != NULL) {
134+ while ((cfile = r_readdir(&dir, false)) != NULL) {
135135 filename = cfile + dirlen;
136136 delete = false;
137137
M util.c View
@@ -134,7 +134,7 @@ int r_closedir(r_dir_t *rdir)
134134 return ret;
135135 }
136136
137−char* r_readdir(r_dir_t *rdir)
137+char* r_readdir(r_dir_t *rdir, bool skip_dotfiles)
138138 {
139139 size_t len;
140140 char *filename;
@@ -143,8 +143,14 @@ char* r_readdir(r_dir_t *rdir)
143143
144144 while (true) {
145145 if (rdir->dir != NULL && (dentry = readdir(rdir->dir)) != NULL) {
146− if (dentry->d_name[0] == '.')
147− continue;
146+ if (dentry->d_name[0] == '.') {
147+ if (skip_dotfiles)
148+ continue;
149+ if (dentry->d_name[1] == '\0')
150+ continue;
151+ if (dentry->d_name[1] == '.' && dentry->d_name[2] == '\0')
152+ continue;
153+ }
148154
149155 len = strlen(rdir->name) + strlen(dentry->d_name) + 2;
150156 filename = (char*) emalloc(len);