1 /* $NetBSD: ksh_stat.h,v 1.2 1997/01/12 19:12:00 tls Exp $ */ 2 3 /* Wrapper around the ugly sys/stat includes/ifdefs */ 4 /* $NetBSD: ksh_stat.h,v 1.2 1997/01/12 19:12:00 tls Exp $ */ 5 6 /* assumes <sys/types.h> already included */ 7 #include <sys/stat.h> 8 9 #ifndef HAVE_LSTAT 10 # define lstat(path, buf) stat(path, buf) 11 #endif /* HAVE_LSTAT */ 12 13 #ifdef STAT_MACROS_BROKEN 14 # undef S_ISREG 15 # undef S_ISDIR 16 # undef S_ISCHR 17 # undef S_ISBLK 18 # undef S_ISFIFO 19 # undef S_ISSOCK 20 # undef S_ISLNK 21 #endif /* STAT_MACROS_BROKEN */ 22 23 #if !defined(S_ISREG) && defined(S_IFREG) 24 # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) 25 #endif /* S_ISREG */ 26 #if !defined(S_ISDIR) && defined(S_IFDIR) 27 # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) 28 #endif /* S_ISDIR */ 29 #if !defined(S_ISCHR) && defined(S_IFCHR) 30 # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) 31 #endif /* S_ISCHR */ 32 #if !defined(S_ISBLK) && defined(S_IFBLK) 33 # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) 34 #endif /* S_ISBLK */ 35 #if !defined(S_ISFIFO) && defined(S_IFIFO) 36 # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) 37 #endif /* S_ISFIFO */ 38 #if !defined(S_ISLNK) && defined(S_IFLNK) 39 # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) 40 #endif /* S_ISLNK */ 41 #if !defined(S_ISSOCK) && defined(S_IFSOCK) 42 # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) 43 #endif /* S_ISSOCK */ 44 #if !defined(S_ISCDF) && defined(S_CDF) 45 # define S_ISCDF(m) (S_ISDIR(m) && ((m) & S_CDF)) 46 #endif /* S_ISSOCK */ 47 48 #ifndef S_ISVTX 49 # define S_ISVTX 01000 /* sticky bit */ 50 #endif /* S_ISVTX */ 51 52 #ifndef S_IXUSR 53 # define S_IXUSR 00100 /* user execute bit */ 54 #endif /* S_IXUSR */ 55 #ifndef S_IXGRP 56 # define S_IXGRP 00010 /* user execute bit */ 57 #endif /* S_IXGRP */ 58 #ifndef S_IXOTH 59 # define S_IXOTH 00001 /* user execute bit */ 60 #endif /* S_IXOTH */ 61