5 #include <msvcrt/msvcrtdbg.h>
9 int _chmod(const char *filename, mode_t mode)
11 DWORD FileAttributes = 0;
12 DPRINT("_chmod('%s', %x)\n", filename, mode);
14 FileAttributes = GetFileAttributesA(filename);
15 if ( FileAttributes == -1 )
21 if ((mode & _S_IREAD) == _S_IREAD && (mode & _S_IWRITE) != _S_IWRITE)
22 FileAttributes &= FILE_ATTRIBUTE_READONLY;
23 else if (((mode & _S_IREAD) != _S_IREAD) && ((mode & _S_IWRITE) == _S_IWRITE))
24 FileAttributes &= FILE_ATTRIBUTE_NORMAL;
26 FileAttributes &= FILE_ATTRIBUTE_NORMAL;
28 if (SetFileAttributesA(filename, FileAttributes) == FALSE)
34 int _wchmod(const wchar_t *filename, mode_t mode)
36 DWORD FileAttributes = 0;
37 DPRINT("_wchmod('%S', %x)\n", filename, mode);
39 FileAttributes = GetFileAttributesW(filename);
40 if ( FileAttributes == -1 )
46 if ((mode & _S_IREAD) == _S_IREAD && (mode & _S_IWRITE) != _S_IWRITE)
47 FileAttributes &= FILE_ATTRIBUTE_READONLY;
48 else if (((mode & _S_IREAD) != _S_IREAD) && ((mode & _S_IWRITE) == _S_IWRITE))
49 FileAttributes &= FILE_ATTRIBUTE_NORMAL;
51 FileAttributes &= FILE_ATTRIBUTE_NORMAL;
53 if (SetFileAttributesW(filename, FileAttributes) == FALSE)