#if WANT_NONROOT
char rights[16];
- if (nr_check_permission(0, pathname, 0, (buf.st_mode & S_IFDIR), rights) == -1) {
+ if (nr_check_permission(0, pathname, 0, (S_ISDIR(buf.st_mode)), rights) == -1) {
/* no permission to even see this file */
return 0;
}
* The most common cases are put first, for speed :-)
*/
char decode_mode(mode_t mode) {
- if (mode & S_IFREG) return '-';
- if (mode & S_IFDIR) return 'd';
- if (mode & S_IFLNK) return 'l';
- if (mode & S_IFBLK) return 'b';
- if (mode & S_IFCHR) return 'c';
- if (mode & S_IFSOCK) return 's';
- if (mode & S_IFIFO) return 'f';
+ if (S_ISREG(mode)) return '-';
+ if (S_ISDIR(mode)) return 'd';
+ if (S_ISLNK(mode)) return 'l';
+ if (S_ISBLK(mode)) return 'b';
+ if (S_ISCHR(mode)) return 'c';
+ if (S_ISSOCK(mode)) return 's';
+ if (S_ISFIFO(mode)) return 'f';
return '-';
}