522 char *name = result->d_name; |
522 char *name = result->d_name; |
523 if(!strcmp(name, ".") || !strcmp(name, "..")) { |
523 if(!strcmp(name, ".") || !strcmp(name, "..")) { |
524 return sys_dir_read(dir, entry, getstat); |
524 return sys_dir_read(dir, entry, getstat); |
525 } else { |
525 } else { |
526 entry->name = name; |
526 entry->name = name; |
527 #ifndef OSX |
|
528 /* TODO: |
|
529 * implement alternative for fstat for OS X and other crappy |
|
530 * Unices |
|
531 */ |
|
532 if(getstat) { |
527 if(getstat) { |
533 // TODO: check ACLs again for new path |
528 // TODO: check ACLs again for new path |
534 if(fstatat(dir->fd, result->d_name, &entry->stat, 0)) { |
529 if(fstatat(dir->fd, result->d_name, &entry->stat, 0)) { |
535 entry->stat_errno = errno; |
530 entry->stat_errno = errno; |
536 } |
531 } |
537 entry->stat_extra = NULL; |
532 entry->stat_extra = NULL; |
538 } |
533 } |
539 #endif |
|
540 return 1; |
534 return 1; |
541 } |
535 } |
542 } else { |
536 } else { |
543 return 0; |
537 return 0; |
544 } |
538 } |