--- ls.c.orig 2010-03-17 21:45:48.905733890 -0400 +++ ls.c 2010-03-17 21:45:48.905733890 -0400 @@ -241,14 +241,7 @@ files[count]->r = 0; if (S_ISDIR(files[count]->s.st_mode) || S_ISREG(files[count]->s.st_mode)) { - if (files[count]->s.st_uid == uid && - files[count]->s.st_mode & 0400) - files[count]->r = 1; - else if (files[count]->s.st_uid == gid && - files[count]->s.st_mode & 0040) - files[count]->r = 1; /* FIXME: check additional groups */ - else if (files[count]->s.st_mode & 0004) - files[count]->r = 1; + if (access(line, R_OK) == 0) files[count]->r = 1; } } closedir(dir);