Browse Source

Don't skip dot files when cleaning cache

base
Kacper Gutowski Bert Münnich 2 years ago
parent
commit
e6c9218319
4 changed files with 12 additions and 6 deletions
  1. +1
    -1
      main.c
  2. +1
    -1
      sxiv.h
  3. +1
    -1
      thumbs.c
  4. +9
    -3
      util.c

+ 1
- 1
main.c View File

@@ -889,7 +889,7 @@ int main(int argc, char **argv)
continue;
}
start = fileidx;
while ((filename = r_readdir(&dir)) != NULL) {
while ((filename = r_readdir(&dir, true)) != NULL) {
check_add_file(filename, false);
free((void*) filename);
}


+ 1
- 1
sxiv.h View File

@@ -364,7 +364,7 @@ void error(int, int, const char*, ...);
void size_readable(float*, const char**);
int r_opendir(r_dir_t*, const char*, bool);
int r_closedir(r_dir_t*);
char* r_readdir(r_dir_t*);
char* r_readdir(r_dir_t*, bool);
int r_mkdir(char*);




+ 1
- 1
thumbs.c View File

@@ -131,7 +131,7 @@ void tns_clean_cache(tns_t *tns)

dirlen = strlen(cache_dir);

while ((cfile = r_readdir(&dir)) != NULL) {
while ((cfile = r_readdir(&dir, false)) != NULL) {
filename = cfile + dirlen;
delete = false;



+ 9
- 3
util.c View File

@@ -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);


Loading…
Cancel
Save