Reimplemented CreateDirectoryW and RemoveDirectoryW using ntdll
functions.
diff --git a/server/fd.c b/server/fd.c
index 68460d9..19e2fe9 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -929,6 +929,21 @@
release_object( fd );
return NULL;
}
+ /* create the directory if needed */
+ if ((options & FILE_DIRECTORY_FILE) && (flags & O_CREAT))
+ {
+ if (mkdir( name, 0777 ) == -1)
+ {
+ if (errno != EEXIST || (flags & O_EXCL))
+ {
+ file_set_error();
+ release_object( fd );
+ free( closed_fd );
+ return NULL;
+ }
+ }
+ flags &= ~(O_CREAT | O_EXCL | O_TRUNC);
+ }
if ((fd->unix_fd = open( name, flags, *mode )) == -1)
{
file_set_error();