Skip to content

Commit a975e96

Browse files
committed
Cleanup permission bits
1 parent a0620e0 commit a975e96

1 file changed

Lines changed: 37 additions & 95 deletions

File tree

vm/src/stdlib/stat.rs

Lines changed: 37 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -64,140 +64,82 @@ mod stat {
6464
};
6565

6666
// Permission bits
67-
#[cfg(unix)]
68-
#[pyattr]
69-
pub const S_ISUID: Mode = libc::S_ISUID;
70-
#[cfg(not(unix))]
71-
#[pyattr]
72-
pub const S_ISUID: Mode = 0o4000;
7367

74-
#[cfg(unix)]
75-
#[pyattr]
76-
pub const S_ISGID: Mode = libc::S_ISGID;
77-
#[cfg(not(unix))]
7868
#[pyattr]
79-
pub const S_ISGID: Mode = 0o2000;
69+
pub const S_ISUID: Mode = unix_libc_get!(S_ISUID, 0o4000);
8070

81-
#[cfg(unix)]
8271
#[pyattr]
83-
pub const S_ENFMT: Mode = libc::S_ISGID;
84-
#[cfg(not(unix))]
85-
#[pyattr]
86-
pub const S_ENFMT: Mode = 0o2000;
72+
pub const S_ISGID: Mode = unix_libc_get!(S_ISGID, 0o2000);
8773

88-
#[cfg(unix)]
89-
#[pyattr]
90-
pub const S_ISVTX: Mode = libc::S_ISVTX;
91-
#[cfg(not(unix))]
9274
#[pyattr]
93-
pub const S_ISVTX: Mode = 0o1000;
75+
pub const S_ENFMT: Mode = unix_libc_get!(S_ISGID, 0o2000);
9476

95-
#[cfg(unix)]
96-
#[pyattr]
97-
pub const S_IRWXU: Mode = libc::S_IRWXU;
98-
#[cfg(not(unix))]
9977
#[pyattr]
100-
pub const S_IRWXU: Mode = 0o0700;
78+
pub const S_ISVTX: Mode = unix_libc_get!(S_ISVTX, 0o1000);
10179

102-
#[cfg(unix)]
103-
#[pyattr]
104-
pub const S_IRUSR: Mode = libc::S_IRUSR;
105-
#[cfg(not(unix))]
10680
#[pyattr]
107-
pub const S_IRUSR: Mode = 0o0400;
81+
pub const S_IRWXU: Mode = unix_libc_get!(S_IRWXU, 0o0700);
10882

109-
#[cfg(unix)]
11083
#[pyattr]
111-
pub const S_IREAD: Mode = libc::S_IRUSR;
112-
#[cfg(not(unix))]
113-
#[pyattr]
114-
pub const S_IREAD: Mode = 0o0400;
84+
pub const S_IRUSR: Mode = unix_libc_get!(S_IRUSR, 0o0400);
11585

116-
#[cfg(unix)]
117-
#[pyattr]
118-
pub const S_IWUSR: Mode = libc::S_IWUSR;
119-
#[cfg(not(unix))]
12086
#[pyattr]
121-
pub const S_IWUSR: Mode = 0o0200;
87+
pub const S_IREAD: Mode = unix_libc_get!(S_IRUSR, 0o0400);
12288

123-
#[cfg(all(unix, not(target_os = "android"), not(target_os = "redox")))]
12489
#[pyattr]
125-
pub const S_IWRITE: Mode = libc::S_IWRITE;
126-
#[cfg(any(not(unix), target_os = "android", target_os = "redox"))]
127-
#[pyattr]
128-
pub const S_IWRITE: Mode = 0o0200;
90+
pub const S_IWUSR: Mode = unix_libc_get!(S_IWUSR, 0o0200);
12991

130-
#[cfg(unix)]
131-
#[pyattr]
132-
pub const S_IXUSR: Mode = libc::S_IXUSR;
133-
#[cfg(not(unix))]
13492
#[pyattr]
135-
pub const S_IXUSR: Mode = 0o0100;
93+
pub const S_IXUSR: Mode = unix_libc_get!(S_IXUSR, 0o0100);
13694

137-
#[cfg(all(unix, not(target_os = "android"), not(target_os = "redox")))]
13895
#[pyattr]
139-
pub const S_IEXEC: Mode = libc::S_IEXEC;
140-
#[cfg(any(not(unix), target_os = "android", target_os = "redox"))]
141-
#[pyattr]
142-
pub const S_IEXEC: Mode = 0o0100;
96+
pub const S_IRWXG: Mode = unix_libc_get!(S_IRWXG, 0o0070);
14397

144-
#[cfg(unix)]
14598
#[pyattr]
146-
pub const S_IRWXG: Mode = libc::S_IRWXG;
147-
#[cfg(not(unix))]
148-
#[pyattr]
149-
pub const S_IRWXG: Mode = 0o0070;
99+
pub const S_IRGRP: Mode = unix_libc_get!(S_IRGRP, 0o0040);
150100

151-
#[cfg(unix)]
152-
#[pyattr]
153-
pub const S_IRGRP: Mode = libc::S_IRGRP;
154-
#[cfg(not(unix))]
155101
#[pyattr]
156-
pub const S_IRGRP: Mode = 0o0040;
102+
pub const S_IWGRP: Mode = unix_libc_get!(S_IWGRP, 0o0020);
157103

158-
#[cfg(unix)]
159-
#[pyattr]
160-
pub const S_IWGRP: Mode = libc::S_IWGRP;
161-
#[cfg(not(unix))]
162104
#[pyattr]
163-
pub const S_IWGRP: Mode = 0o0020;
105+
pub const S_IXGRP: Mode = unix_libc_get!(S_IXGRP, 0o0010);
164106

165-
#[cfg(unix)]
166107
#[pyattr]
167-
pub const S_IXGRP: Mode = libc::S_IXGRP;
168-
#[cfg(not(unix))]
169-
#[pyattr]
170-
pub const S_IXGRP: Mode = 0o0010;
108+
pub const S_IRWXO: Mode = unix_libc_get!(S_IRWXO, 0o0007);
171109

172-
#[cfg(unix)]
173-
#[pyattr]
174-
pub const S_IRWXO: Mode = libc::S_IRWXO;
175-
#[cfg(not(unix))]
176110
#[pyattr]
177-
pub const S_IRWXO: Mode = 0o0007;
111+
pub const S_IROTH: Mode = unix_libc_get!(S_IROTH, 0o0004);
178112

179-
#[cfg(unix)]
180-
#[pyattr]
181-
pub const S_IROTH: Mode = libc::S_IROTH;
182-
#[cfg(not(unix))]
183113
#[pyattr]
184-
pub const S_IROTH: Mode = 0o0004;
114+
pub const S_IWOTH: Mode = unix_libc_get!(S_IWOTH, 0o0002);
185115

186-
#[cfg(unix)]
187-
#[pyattr]
188-
pub const S_IWOTH: Mode = libc::S_IWOTH;
189-
#[cfg(not(unix))]
190116
#[pyattr]
191-
pub const S_IWOTH: Mode = 0o0002;
117+
pub const S_IXOTH: Mode = unix_libc_get!(S_IXOTH, 0o0001);
192118

193-
#[cfg(unix)]
194119
#[pyattr]
195-
pub const S_IXOTH: Mode = libc::S_IXOTH;
196-
#[cfg(not(unix))]
120+
pub const S_IWRITE: Mode = {
121+
cfg_if::cfg_if! {
122+
if #[cfg(all(unix, not(target_os = "android"), not(target_os = "redox")))] {
123+
libc::S_IWRITE
124+
} else {
125+
0o0200
126+
}
127+
}
128+
};
129+
197130
#[pyattr]
198-
pub const S_IXOTH: Mode = 0o0001;
131+
pub const S_IEXEC: Mode = {
132+
cfg_if::cfg_if! {
133+
if #[cfg(all(unix, not(target_os = "android"), not(target_os = "redox")))] {
134+
libc::S_IEXEC
135+
} else {
136+
0o0100
137+
}
138+
}
139+
};
199140

200141
// Stat result indices
142+
201143
#[pyattr]
202144
pub const ST_MODE: u32 = 0;
203145

0 commit comments

Comments
 (0)