nsxive6c9218
Don't skip dot files when cleaning cache
+12 −6
4 files changed
| @@ -889,7 +889,7 @@ int main(int argc, char **argv) | |||
| 889 | 889 | continue; | |
| 890 | 890 | } | |
| 891 | 891 | start = fileidx; | |
| 892 | − | while ((filename = r_readdir(&dir)) != NULL) { | |
| 892 | + | while ((filename = r_readdir(&dir, true)) != NULL) { | |
| 893 | 893 | check_add_file(filename, false); | |
| 894 | 894 | free((void*) filename); | |
| 895 | 895 | } | |
| @@ -364,7 +364,7 @@ void error(int, int, const char*, ...); | |||
| 364 | 364 | void size_readable(float*, const char**); | |
| 365 | 365 | int r_opendir(r_dir_t*, const char*, bool); | |
| 366 | 366 | int r_closedir(r_dir_t*); | |
| 367 | − | char* r_readdir(r_dir_t*); | |
| 367 | + | char* r_readdir(r_dir_t*, bool); | |
| 368 | 368 | int r_mkdir(char*); | |
| 369 | 369 | ||
| 370 | 370 | ||
| @@ -131,7 +131,7 @@ void tns_clean_cache(tns_t *tns) | |||
| 131 | 131 | ||
| 132 | 132 | dirlen = strlen(cache_dir); | |
| 133 | 133 | ||
| 134 | − | while ((cfile = r_readdir(&dir)) != NULL) { | |
| 134 | + | while ((cfile = r_readdir(&dir, false)) != NULL) { | |
| 135 | 135 | filename = cfile + dirlen; | |
| 136 | 136 | delete = false; | |
| 137 | 137 | ||
| @@ -134,7 +134,7 @@ int r_closedir(r_dir_t *rdir) | |||
| 134 | 134 | return ret; | |
| 135 | 135 | } | |
| 136 | 136 | ||
| 137 | − | char* r_readdir(r_dir_t *rdir) | |
| 137 | + | char* r_readdir(r_dir_t *rdir, bool skip_dotfiles) | |
| 138 | 138 | { | |
| 139 | 139 | size_t len; | |
| 140 | 140 | char *filename; | |
| @@ -143,8 +143,14 @@ char* r_readdir(r_dir_t *rdir) | |||
| 143 | 143 | ||
| 144 | 144 | while (true) { | |
| 145 | 145 | 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 | + | } | |
| 148 | 154 | ||
| 149 | 155 | len = strlen(rdir->name) + strlen(dentry->d_name) + 2; | |
| 150 | 156 | filename = (char*) emalloc(len); | |