Fix S_IS*
For some reason, C handles `==` before `&`. So `a & b == c` is the same thing as `a & (b == c)`.
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
#ifndef _BITS_STAT_H
|
||||
#define _BITS_STAT_H
|
||||
|
||||
#define S_ISDIR(mode) mode & S_IFMT == S_IFDIR
|
||||
#define S_ISCHR(mode) mode & S_IFMT == S_IFCHR
|
||||
#define S_ISBLK(mode) mode & S_IFMT == S_IFBLK
|
||||
#define S_ISREG(mode) mode & S_IFMT == S_IFREG
|
||||
#define S_ISFIFO(mode) mode & S_IFMT == S_IFIFO
|
||||
#define S_ISLNK(mode) mode & S_IFMT == S_IFLNK
|
||||
#define S_ISSOCK(mode) mode & S_IFMT == S_IFSOCK
|
||||
#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
|
||||
#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR)
|
||||
#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK)
|
||||
#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
|
||||
#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO)
|
||||
#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)
|
||||
#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)
|
||||
|
||||
#define st_atime st_atim.tv_sec
|
||||
#define st_mtime st_mtim.tv_sec
|
||||
|
||||
Reference in New Issue
Block a user