From 64d6e1d43e0b749f8eb2dc58ceeb592b9154d6e1 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 11 Feb 2009 16:06:39 +0000 Subject: * syscalls.cc (open): Handle O_DIRECTORY flag. * include/fcntl.h: Add SUSv4 flags O_DIRECTORY, O_EXEC and O_SEARCH. * include/cygwin/version.h: Bump API minor number. --- winsup/cygwin/syscalls.cc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'winsup/cygwin/syscalls.cc') diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index c68599246..af26e008b 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -969,6 +969,12 @@ open (const char *unix_path, int flags, ...) res = -1; set_errno (ELOOP); } + else if ((flags & O_DIRECTORY) && !fh->pc.isdir ()) + { + delete fh; + res = -1; + set_errno (ENOTDIR); + } else if (((flags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL)) && fh->exists ()) { delete fh; -- cgit v1.2.3