Redefine readdir() on IsoFileSource, to skip "." and ".." dirs.

This commit is contained in:
Vreixo Formoso
2007-12-11 22:41:18 +01:00
parent 008871cfd8
commit 0306bb5daf
2 changed files with 14 additions and 6 deletions

View File

@ -281,12 +281,18 @@ int lfs_readdir(IsoFileSource *src, IsoFileSource **child)
size_t a, b;
int ret;
entry = readdir(data->info.dir);
if (entry == NULL) {
if (errno == EBADF)
return ISO_FILE_ERROR;
else
return 0; /* EOF */
/* while to skip "." and ".." dirs */
while (1) {
entry = readdir(data->info.dir);
if (entry == NULL) {
if (errno == EBADF)
return ISO_FILE_ERROR;
else
return 0; /* EOF */
}
if (strcmp(entry->d_name,".") && strcmp(entry->d_name,"..")) {
break;
}
}
/* constructs the new path */