aboutsummaryrefslogtreecommitdiff
path: root/fileio.c
diff options
context:
space:
mode:
Diffstat (limited to 'fileio.c')
-rw-r--r--fileio.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/fileio.c b/fileio.c
index 0e2b389..497adfa 100644
--- a/fileio.c
+++ b/fileio.c
@@ -516,25 +516,27 @@ int asscandir(const char *dir, ASDIR **namelist, int (*compar)(const void *, con
entry=readdir(dirh);
while(entry!=NULL) {
- snprintf(filename, sizeof(filename), "%s/%s", dir, entry->d_name);
- if(stat(filename, &fileinfo)!=0)
- return -1;
-
- memset(&names[entries], 0, sizeof(ASDIR));
- strcpy(names[entries].name, entry->d_name);
- names[entries].type=fileinfo.st_mode;
- if(S_ISDIR(fileinfo.st_mode) && recursive_du)
- names[entries].size=du(filename);
- else
- names[entries].size=fileinfo.st_size;
- names[entries].atime=fileinfo.st_atime;
- names[entries].mtime=fileinfo.st_mtime;
- names[entries].rtime=fileinfo.st_ctime;
-
- names=(ASDIR*)realloc((ASDIR*)names, sizeof(ASDIR)*(entries+2));
- if(names==NULL)
- return -1;
- entries++;
+ if(entry->d_name[0]!='.') {
+ snprintf(filename, sizeof(filename), "%s/%s", dir, entry->d_name);
+ if(stat(filename, &fileinfo)!=0)
+ return -1;
+
+ memset(&names[entries], 0, sizeof(ASDIR));
+ strcpy(names[entries].name, entry->d_name);
+ names[entries].type=fileinfo.st_mode;
+ if(S_ISDIR(fileinfo.st_mode) && recursive_du)
+ names[entries].size=du(filename);
+ else
+ names[entries].size=fileinfo.st_size;
+ names[entries].atime=fileinfo.st_atime;
+ names[entries].mtime=fileinfo.st_mtime;
+ names[entries].rtime=fileinfo.st_ctime;
+
+ names=(ASDIR*)realloc((ASDIR*)names, sizeof(ASDIR)*(entries+2));
+ if(names==NULL)
+ return -1;
+ entries++;
+ }
entry=readdir(dirh);
}
closedir(dirh);