extern int dry_run;
extern int read_only;
+extern int list_only;
-#define CHECK_RO if (read_only) {errno = EROFS; return -1;}
+#define CHECK_RO if (read_only || list_only) {errno = EROFS; return -1;}
int do_unlink(char *fname)
{
int do_open(char *pathname, int flags, mode_t mode)
{
if (dry_run) return -1;
+#ifdef O_BINARY
+ /* for Windows */
+ flags |= O_BINARY;
+#endif
CHECK_RO
return open(pathname, flags, mode);
}