#endif
return 0;
-#else /* !HAVE_STAT_FLAGS || (APPLE_DARWIN && HAVE_EXT2_IOCTLS) */
-#if HAVE_EXT2_IOCTLS
+#elif APPLE_DARWIN && HAVE_EXT2_IOCTLS
+ int f, save_errno = 0;
+
+ f = -1;
+ save_errno = syscall(SYS_fsctl, name, EXT2_IOC_GETFLAGS, &f, 0);
+ *flags = f;
+ return (save_errno);
+#elif HAVE_EXT2_IOCTLS
int fd, r, f, save_errno = 0;
-#if !APPLE_DARWIN
fd = open(name, OPEN_FLAGS);
if (fd == -1) {
if (errno == ELOOP || errno == ENXIO)
if (save_errno)
errno = save_errno;
return r;
-#else /* APPLE_DARWIN */
- f = -1;
- save_errno = syscall(SYS_fsctl, name, EXT2_IOC_GETFLAGS, &f, 0);
- *flags = f;
- return (save_errno);
-#endif /* !APPLE_DARWIN */
-#endif /* HAVE_EXT2_IOCTLS */
-#endif
+#else
errno = EOPNOTSUPP;
return -1;
+#endif
}
#endif
return chflags (name, bsd_flags);
-#else /* !HAVE_CHFLAGS || (APPLE_DARWIN && HAVE_EXT2_IOCTLS) */
-#if HAVE_EXT2_IOCTLS
+#elif APPLE_DARWIN && HAVE_EXT2_IOCTLS
+ int f = (int) flags;
+ return syscall(SYS_fsctl, name, EXT2_IOC_SETFLAGS, &f, 0);
+#elif HAVE_EXT2_IOCTLS
int fd, r, f, save_errno = 0;
struct stat buf;
-#if !APPLE_DARWIN
fd = open(name, OPEN_FLAGS);
if (fd == -1) {
if (errno == ELOOP || errno == ENXIO)
if (save_errno)
errno = save_errno;
return r;
-#else /* APPLE_DARWIN */
- f = (int) flags;
- return syscall(SYS_fsctl, name, EXT2_IOC_SETFLAGS, &f, 0);
-#endif /* !APPLE_DARWIN */
-#endif /* HAVE_EXT2_IOCTLS */
-#endif
+#else
errno = EOPNOTSUPP;
return -1;
+#endif
}