Dmitry Timoshkov <dmi...@codeweavers.com> writes: > @@ -1829,6 +1828,11 @@ struct fd *open_fd( struct fd *root, const char *name, > int flags, mode_t *mode, > return NULL; > } > ftruncate( fd->unix_fd, 0 ); > + if (flags & O_CREAT) > + { > + fchmod( fd->unix_fd, *mode ); > + fstat( fd->unix_fd, &st ); > + }
You'd have to take umask into account. And I'd like to see some tests for this at the ntdll level. > @@ -178,7 +178,7 @@ static struct object *create_file( struct fd *root, const > char *nameptr, data_si > switch(create) > { > case FILE_CREATE: flags = O_CREAT | O_EXCL; break; > - case FILE_OVERWRITE_IF: /* FIXME: the difference is whether we trash > existing attr or not */ > + case FILE_OVERWRITE_IF: /* the difference is whether we trash existing > attr or not */ It's still a FIXME. -- Alexandre Julliard julli...@winehq.org