1
2
3
4
5
6
7 #ifndef MC_FS_H
8 #define MC_FS_H
9
10 #include <sys/types.h>
11 #include <unistd.h>
12 #include <sys/stat.h>
13 #include <dirent.h>
14
15
16
17 #ifdef S_ISREG
18 #define HAVE_S_ISREG 1
19 #else
20 #define HAVE_S_ISREG 0
21 #define S_ISREG(x) 0
22 #endif
23
24 #ifdef S_ISDIR
25 #define HAVE_S_ISDIR 1
26 #else
27 #define HAVE_S_ISDIR 0
28 #define S_ISDIR(x) 0
29 #endif
30
31
32 #ifdef S_ISLNK
33 #define HAVE_S_ISLNK 1
34 #else
35 #define HAVE_S_ISLNK 0
36 #define S_ISLNK(x) 0
37 #endif
38
39 #ifdef S_ISSOCK
40 #define HAVE_S_ISSOCK 1
41 #else
42 #define HAVE_S_ISSOCK 0
43 #define S_ISSOCK(x) 0
44 #endif
45
46 #ifdef S_ISFIFO
47 #define HAVE_S_ISFIFO 1
48 #else
49 #define HAVE_S_ISFIFO 0
50 #define S_ISFIFO(x) 0
51 #endif
52
53 #ifdef S_ISCHR
54 #define HAVE_S_ISCHR 1
55 #else
56 #define HAVE_S_ISCHR 0
57 #define S_ISCHR(x) 0
58 #endif
59
60 #ifdef S_ISBLK
61 #define HAVE_S_ISBLK 1
62 #else
63 #define HAVE_S_ISBLK 0
64 #define S_ISBLK(x) 0
65 #endif
66
67
68 #ifdef S_ISDOOR
69 #define HAVE_S_ISDOOR 1
70 #else
71 #define HAVE_S_ISDOOR 0
72 #define S_ISDOOR(x) 0
73 #endif
74
75
76 #ifdef S_ISNAM
77 #define HAVE_S_ISNAM 1
78 #else
79 #define HAVE_S_ISNAM 0
80 #define S_ISNAM(x) 0
81 #endif
82
83 #ifndef PATH_MAX
84 #ifdef _POSIX_VERSION
85 #define PATH_MAX _POSIX_PATH_MAX
86 #else
87 #ifdef MAXPATHLEN
88 #define PATH_MAX MAXPATHLEN
89 #else
90 #define PATH_MAX 1024
91 #endif
92 #endif
93 #endif
94
95 #ifndef MAXPATHLEN
96 #define MC_MAXPATHLEN 4096
97 #else
98 #define MC_MAXPATHLEN MAXPATHLEN
99 #endif
100
101
102 #ifndef MAXNAMLEN
103 #define MAXNAMLEN NAME_MAX
104 #endif
105
106 #define MC_MAXFILENAMELEN MAXNAMLEN
107
108 #define DIR_IS_DOT(x) ((x)[0] == '.' && (x)[1] == '\0')
109 #define DIR_IS_DOTDOT(x) ((x)[0] == '.' && (x)[1] == '.' && (x)[2] == '\0')
110
111
112
113
114
115
116
117
118
119
120
121 #endif